如何在节点上使用admin SDK访问实时数据库时指定有效的uid

时间:2018-06-04 01:59:25

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

我是node.js的新手。我有一个用户节点创建了一个数据库。用户节点受以下规则保护。

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

要从节点js访问用户节点下的数据,我需要在auth令牌有效负载中发送uid。请帮我一个示例代码,通过节点js将有效负载发送到firebase。

1 个答案:

答案 0 :(得分:0)

documentation

中对此进行了描述
  

在您的服务器上,初始化Firebase应用时,请使用   databaseAuthVariableOverride选项可覆盖使用的auth对象   根据您的数据库规则。在此自定义身份验证对象中,设置uid字段   您用于在安全性中表示服务的标识符   规则。

// Initialize the app with a custom auth variable, limiting the server's access
admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://databaseName.firebaseio.com",
  databaseAuthVariableOverride: {
    uid: "my-service-worker"
  }
});