代码之家  ›  专栏  ›  技术社区  ›  gib65

如何通过firebase admin sdk进行身份验证?

  •  0
  • gib65  · 技术社区  · 6 年前

    我有一个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?非常感谢。

    0 回复  |  直到 6 年前
        1
  •  0
  •   Hiranya Jayathilaka    6 年前

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