Firebase Google Tasks Api-错误:3无效参数:请求包含无效参数

Firebase Google Tasks Api-错误:3无效参数:请求包含无效参数,firebase,google-cloud-firestore,google-tasks-api,Firebase,Google Cloud Firestore,Google Tasks Api,我编写了以下代码,以便在firestore的集合中添加新项目时创建任务 import*作为“firebase函数”中的函数 从“firebase admin”以管理员身份导入* const{CloudTasksClient}=require(“@googlecloud/tasks”) exports.moveActivityFromplantoreRecord=()=> 功能 .区域(“欧洲西部1”) .firestore.document('Users/{userId}/Activities/

我编写了以下代码,以便在firestore的集合中添加新项目时创建任务

import*作为“firebase函数”中的函数
从“firebase admin”以管理员身份导入*
const{CloudTasksClient}=require(“@googlecloud/tasks”)
exports.moveActivityFromplantoreRecord=()=>
功能
.区域(“欧洲西部1”)
.firestore.document('Users/{userId}/Activities/{activityId}')
.onCreate(异步快照=>{
const moveTime=snapshot.data()!作为moveTime
如果(!moveTime | |!moveTime.dueTime){
log(“DueTime为空或null:\n”+moveTime)
返回
}
//从FIREBASE_CONFIG env var获取项目ID
const project=JSON.parse(process.env.FIREBASE\u CONFIG!).projectId
常数位置='europe-west1'
常量队列='activityDateEventChecker'
//queuePath将是唯一标识任务的字符串
const tasksClient=new CloudTasksClient()
常量队列路径:字符串=
tasksClient.queuePath(项目、位置、队列)
//我的回调函数的URL和要传递的有效负载的内容
const url=`https://${location}-${project}.cloudfunctions.net/activityDateEventCheckerCallback`
const docPath=snapshot.ref.path
const dueTime=moveTime.dueTime
常量负载:MoveTaskPayload={docPath,dueTime}
控制台日志(有效负载)
//构建云任务的配置
常量任务={
httpRequest:{
httpMethod:'POST',
url:url,
body:Buffer.from(JSON.stringify(payload)).toString('base64'),
标题:{
“内容类型”:“应用程序/json”,
},
},
计划时间:{
秒数:moveTime.dueTime/1000
}
}
//将任务放入队列中
return tasksClient.createTask({parent:queuePath,task:task})
})
接口MoveTime扩展admin.firestore.DocumentData{
dueTime?:数字
}
接口移动任务负载{
docPath:string,
决斗时间:第
}
当函数被触发时(当一个新的“活动”被添加到集合中时),它抛出以下错误:

错误:3无效参数:请求包含无效参数

这里有什么问题
顺便说一句,方法
中的最后一行是返回任务还是等待任务



编辑:完全相同的代码现在正在工作,我没有做任何更改!我只是为了好玩而用Termux应用程序部署了它,然后它就开始工作了

我猜您当前的问题源于: `exports.moveActivityFromPlanToRecord=()=>

如果删除
()=>
部分,则在调用
moveActivityFromPlanToRecord
函数时,所需参数将需要与
onCreate()
所需参数相匹配

这不应该解决所有问题,因为
onCreate()
需要两个参数,
函数onCreate(快照:DataSnapshot,context:EventContext):PromiseLike而不是源代码,因为我在手机上)。这意味着
onCreate()
函数无法在当前实现中接收参数

这里有什么问题吗?\顺便说一句,方法中的最后一行应该返回任务,还是等待它? 几乎可以肯定,您需要返回
承诺
字符串
。这是一个基本的理解,你应该阅读所有背景谷歌云功能


可能还有其他问题,但这应该有助于解决您的要求。

我猜您当前的问题源于: `exports.moveActivityFromPlanToRecord=()=>

如果删除
()=>
部分,则在调用
moveActivityFromPlanToRecord
函数时,所需参数将需要与
onCreate()
所需参数相匹配

这不应该解决所有问题,因为
onCreate()
需要两个参数,
函数onCreate(快照:DataSnapshot,context:EventContext):PromiseLike而不是源代码,因为我在手机上)。这意味着
onCreate()
函数无法在当前实现中接收参数

这里有什么问题吗?\顺便说一句,方法中的最后一行应该返回任务,还是等待它? 几乎可以肯定,您需要返回
承诺
字符串
。这是一个基本的理解,你应该阅读所有背景谷歌云功能


可能还有其他问题,但这将有助于解决您的问题。

共享完整的日志和发生错误的行,是post方法还是之前的方法?您是否发现了问题所在?我也犯了同样的错误。堆栈跟踪涉及GRPC。我想这可能与以下内容有关:body:Buffer.from(JSON.stringify(payload)).toString('base64'),但我不知道…共享完整的日志和发生错误的行,是post方法还是之前的方法?您发现哪里出了问题吗?我也犯了同样的错误。堆栈跟踪涉及GRPC。我想它可能与此相关:body:Buffer.from(JSON.stringify(payload)).toString('base64'),但我不知道。。。