为了账号安全,请及时绑定邮箱和手机立即绑定

firebase 函数将整数转换为对象

firebase 函数将整数转换为对象

扬帆大鱼 2022-11-11 14:21:21
iOS 客户端调用函数,参数如下:func buyTicket(contestId: String, points: Int) -> SignalProducer<Void, Error> {    Functions.functions().httpsCallable("myFunction").call([        "userId": Auth.auth().currentUser!.uid,        "points": points,        "contestId": contestId            ], completion: ...然后在函数的开头我有这个日志const userId = req.body.data.userId;const contestId = req.body.data.contestId;const points = req.body.data.points;console.log(`myFunction called with userId: ${userId} contestId: ${contestId} points: ${points}`);打印出来的是使用 userId 调用的 myFunction:BzoW5pWLbWRnd2UgjnTkfd3xfNf2 竞赛Id:pBsQo0FHMyu4ay18dexy 点:[object Object]为什么点转换为对象?当我尝试将点传递给时,这导致我的函数崩溃FieldValue.increment
查看完整描述

1 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

看起来您将HTTP Cloud Function实现与Callable Cloud Function的调用混合在一起。这两类功能不一样,也不兼容。

要从您的应用程序调用HTTP 函数,您将从 Swift 代码执行常规 HTTP 请求。例如,如何在 Swift 中发出 HTTP 请求?

如果你想让你的 Swift 代码保持不变,你必须将你的服务器端实现为 Callable Cloud Function。这意味着声明看起来像:

exports.myFunction = functions.https.onCall((data, context) => {
  ...
  });

你得到的参数为data.userId,data.points等。


查看完整回答
反对 回复 2022-11-11
  • 1 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信