【问题标题】:`firebase_tools.firestore .delete` requires a token, but where does that token come from?`firebase_tools.firestore .delete` 需要一个令牌,但该令牌来自哪里?
【发布时间】:2020-08-07 11:52:14
【问题描述】:

我有一个 Firebase 云(可调用)函数,它可以删除一个 Firestore 文档和所有子实体,包括子集合。我通过稍微修改在他们的文档中提供我的 firebase 的函数来做到这一点:https://firebase.google.com/docs/firestore/solutions/delete-collections

重要的一点在这里:

...
return firebase_tools.firestore
      .delete(path, {
        project: process.env.GCLOUD_PROJECT,
        recursive: true,
        yes: true,
        token: functions.config().fb.token
      })
...

当我从我的网页调用此函数时(在用户进行身份验证后),Web 客户端会抛出远程函数导致错误的错误。在 firebase 控制台中,我发现此错误:

Unhandled error TypeError: Cannot read property 'token' of undefined

这是指向上面代码sn-p中的行:token: functions.config().fb.token。所以.fb 为空。

这是怎么回事?

在网上搜索告诉我一些关于login:ci 在命令行中的信息,但是虽然我是在我的笔记本电脑上开发它,但当应用程序部署时,将没有命令行。该网站将在 firebase 托管。它调用了一个 firebase 云函数。我正在使用 firebase auth 进行用户身份验证(电子邮件/密码)并将数据存储在 firestore 中。

此外,我已经在命令行上启用了,因为我可以执行 firebase deploy --only functions 就好了。如何确保functions.config().fb 不返回空值??

【问题讨论】:

    标签: firebase google-cloud-firestore firebase-authentication google-cloud-functions


    【解决方案1】:

    如果需要,您可以直接将令牌字符串粘贴到代码中,替换 functions.config().fb.token。该页面的作者可能认为您不想这样做,因此他们建议您应该为其创建一个配置项。

    如果您不想粘贴它,并且您实际上想要配置函数以从 configuration 获取该值,则必须使用 functions:config:set 在命令行上设置配置,如下所示:

    firebase functions:config:set fb.token=<YOUR-TOKEN>
    

    再次部署您的函数,以便它可以使用该值。

    如果您发现文档令人困惑,我建议您使用页面右上角的“发送反馈”链接。

    【讨论】:

    • 我从哪里得到这个令牌?它在项目的整个生命周期内是否保持不变?如果不是,我必须何时以及多久生成一次此令牌?如果空间允许,what 这个令牌是干什么用的?到目前为止,我已经能够使用 auth、firestore、functions,而无需此令牌。
    • 这些说明在您链接的文档的代码中的注释中。查找有关使用 CLI 的“login:ci”命令的部分。 Firebase CLI 文档有更多详细信息:firebase.google.com/docs/cli#cli-ci-systems
    • 感谢您的帮助。我试图避免遵循程序而不了解它在做什么。什么是我了解 FB 代币的最佳地点?另外,我做了login:ci,它询问我的谷歌帐户,然后询问权限,然后将我重定向到http://localhost:9005/....!显然我在那个端口上没有任何服务器,所以我得到了一个错误。 (我正在通过端口 8000 上的 python -m http.serve 测试我的代码)。甚至firebase serve 似乎也服务于端口 5000。
    • 添加 '--no-localhost' 似乎可以解决这个问题。与编程不同,我认为在取得任何进展之前我需要完整阅读部署文档!
    猜你喜欢
    • 1970-01-01
    • 2019-04-25
    • 2020-03-12
    • 2021-02-27
    • 2013-03-20
    • 2019-12-29
    • 2017-01-18
    • 1970-01-01
    • 2021-06-23
    相关资源
    最近更新 更多