使用Firebase Realtime DB

时间:2018-12-09 12:32:14

标签: node.js firebase firebase-realtime-database firebase-authentication firebase-security-rules

我想对我的node.js应用程序进行身份验证,以将数据写入Firebase实时数据库并允许客户端读取。我的数据库架构的结构现在是:

"<db_name>": {
  "users": { ... }
}

这是我到目前为止的规则配置:

{
  "rules": {
    "users": {
      "$uid": {
        ".read": "$uid === auth.uid",
        ".write": true
      },
      ".write": true
    }
  }
}

这是否至少应允许对DB的所有写访问? 而且,我尝试搜索有关如何使用Firebase数据库对服务器应用程序进行身份验证的官方文档,但我只能找到如何使用Firebase Admin(这不是我所需要的)。

在我的代码中,我这样做:

const firebaseConfig = {
  "apiKey": "xxx",
  "authDomain": "xxx.firebaseapp.com",
  "databaseURL": "https://xxx.firebaseio.com",
  "projectId": "xxx",
  "storageBucket": "xxx.appspot.com",
  "messagingSenderId": "xxx"
}
firebase.initializeApp(firebaseConfig);

但这只是初始化连接。我还需要通过持久令牌或其他方式以某种方式使用Firebase授权服务器,我不确定...

Here's是我发现的唯一明智的选择,但这是从2015年开始的,API已经更改。

1 个答案:

答案 0 :(得分:1)

大多数文档着重于在受信任的环境中使用Node.js,在此环境中您使用Admin SDK来获得完全的管理访问权限。如果您使用的是受信任的平台,建议您使用该平台,然后将setDatabaseAuthVariableOverride调用到access the database with limited privileges

有关非受信任环境中客户端node.js的参考文档,请参见https://firebase.google.com/docs/reference/node/。有signInWithEmailAndPassword method,它应允许您以普通用户身份登录。