【问题标题】:How do I authenticate with firebase admin sdk?如何使用 firebase admin sdk 进行身份验证?
【发布时间】:2020-07-25 15:02:29
【问题描述】:

我有一个 Firebase 实时数据库。我有一个用户有电子邮件和密码:

我也有一些规矩:

{
  "rules": {
    ".read": true,
    "blogposts": {
      ".write": "auth !== null"
    }
  }
}

正如您从规则中看到的那样,我不希望任何人写博客文章,除非 auth 不为空。我假设如果我可以使用上面的用户凭据登录,auth 将不会为空(如果我错了,请纠正我)。

我在我的服务器上使用 Firebase Admin SDK。我从这里生成了一个密钥文件:

密钥文件位于我的服务器上,我正在使用它来初始化 Firebase 管理员:

const serviceAccount = require('my-key-file.json');
fbadmin.initializeApp({
    credential: fbadmin.credential.cert(serviceAccount),
    databaseURL: '...'
});

此时,我不确定如何使用上面的用户凭据进行身份验证。我怎样才能 1) 与上面的用户进行身份验证和 2) 在上面的规则中将 auth 设置为不为空?谢谢。

【问题讨论】:

    标签: authentication firebase-admin


    【解决方案1】:

    Admin SDK 不支持用户身份验证操作。您必须为此使用 Firebase 客户端 SDK 之一(Android、IOS、Web 等)。此外,默认情况下,来自 Admin SDK 的数据库请求不会通过安全规则进行验证。尽管您可以让 SDK 发出数据库请求,就好像它们来自特定的预定义用户一样:https://firebase.google.com/docs/database/admin/start#authenticate-with-limited-privileges

    【讨论】:

    • 谢谢 Hiranya。我想我会改用 Cloud Firestore。
    • 它在 Admin SDK 和安全规则方面具有完全相同的语义。所以你可能会在那里遇到同样的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    • 2019-09-01
    • 2019-07-09
    • 2017-10-16
    • 1970-01-01
    • 2020-05-21
    相关资源
    最近更新 更多