如何使用Firebase管理员SDK进行身份验证?

时间:2020-04-13 04:00:14

标签: authentication firebase-admin

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

enter image description here

我也有一些规则:

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

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

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

enter image description here

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

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

目前,我不确定如何使用上述用户凭据进行身份验证。我如何1)与上述用户进行身份验证,以及2)在上述规则中将auth设置为不为null?谢谢。

1 个答案:

答案 0 :(得分:0)

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