首页 > 解决方案 > 从 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 应用程序代码 -

   let functions = Functions.functions()
   functions.httpsCallable("test").call() { res, error in
        if let error = error {
            debugPrint(error)
        } else {
            debugPrint(res?.data)
        }
   }

谢谢

标签: javascriptfirebasegoogle-cloud-functions

解决方案


关于https.onCall 协议规范的文档,我建议看一下Response format: status codes段落。

问题似乎指向“如果请求中提供的身份验证令牌无效,则请求将被拒绝,并显示 401 Unauthorized,错误代码为 UNAUTHENTICATED。”</p>

你可能会觉得这个问题也很有趣。


推荐阅读