javascript - 从 iOS 应用程序调用函数时,Firebase HTTP 云函数给出 401 错误
问题描述
我已经编写了一些云功能并部署了它们。最初,我使用单个函数 onUpdate,它工作正常。今天我创建了一个简单的 onCall 函数,我愿意从 iOS Firebase SDK 调用它。这是我假设可以工作的测试功能,但它在响应中给了我未经身份验证的错误。
exports.test = functions.https.onCall((data, context) => {
console.log('test call info', data, context);
return 'hello, world!';
});
当我检查 firebase 上的日志时,它向我显示以下日志 -
有人可以帮我解决这个问题吗?几个关键点——
- 我没有启用应用检查。
- 我能够从 iOS 应用程序和内部云函数 (onUpdate) 访问 Firebase 实时数据库和 Firestore 数据库,只是遇到了 HTTP 可调用函数的这个问题。
这是我调用云功能的 iOS 应用程序代码 -
let functions = Functions.functions()
functions.httpsCallable("test").call() { res, error in
if let error = error {
debugPrint(error)
} else {
debugPrint(res?.data)
}
}
谢谢
解决方案
关于https.onCall 协议规范的文档,我建议看一下Response format: status codes段落。
问题似乎指向“如果请求中提供的身份验证令牌无效,则请求将被拒绝,并显示 401 Unauthorized,错误代码为 UNAUTHENTICATED。”</p>
你可能会觉得这个问题也很有趣。
推荐阅读
- node.js - tsc 的 bash 命令返回未找到
- java - java - 如何在命令行java中的-DconfigFile中有多个值?
- php - PHP - 构建前 k 个项目的排序列表
- c++ - 创建一个数组以允许存储用户输入并稍后在代码中使用
- java - 如何在所有 Android 设备上完美检测抖动水平?
- html - 如何使用 css 透视来匹配 div 以在视觉上适合 svg 笔记本电脑屏幕?
- python - mypy vs mypy-lang vs pyls-mypy python包之间的区别
- oracle - 如何从透视的 Oracle 表中删除一列?
- r - R如何用2个向量处理ifelse中的NA?
- python-3.x - Python中的DES加密