【发布时间】:2021-03-02 09:11:42
【问题描述】:
我正在尝试使用以下代码从 firebase 调用云函数。
客户端代码 -
func checkUserStatus() {
let functions = Functions.functions(region: "us-central1")
let argument = [
"currentUser":
[
"email": "test@email.com",
"uid": "LP8R4yZroyMTj"
]
]
functions.httpsCallable("subscriptionStatus").call(argument) { (result, error) in
if error != nil {
print("FAILED")
print(error)
} else {
print("PASSED")
print(result)
}
}
}
云函数代码-
exports.subscriptionStatus = functions.https.onRequest(async (request: Request<RequestBody>, response) => {
const {
currentUser,
} = request.body
// Logic goes here
}
但是运行时出现如下错误
Error Domain=com.firebase.functions Code=3 "INVALID ARGUMENT" UserInfo={NSLocalizedDescription=INVALID ARGUMENT}
该函数接受一个名为currentUser的参数,该参数进一步包括用户的电子邮件和uid。 任何线索都将受到高度赞赏。
【问题讨论】:
-
我认为问题出在你的字典上。尝试只传入 '["email": "test@email.com","uid": "LP8R4yZroyMTj"]' 并查看错误是否持续存在。
-
刚刚尝试过并收到相同的错误消息。
-
哦,我明白了。您的云功能是“onRequest”。如果你要这样使用它,它必须是一个可调用的函数。您可以在以下文档中找到更多信息:firebase.google.com/docs/functions/…
-
哦,有没有办法从客户端调用onRequest类型的函数?
-
我相信你必须通过调用http url来调用该函数:
https://us-central1-<project-id>.cloudfunctions.net/subscriptionStatus
标签: ios swift firebase google-cloud-functions