Node.js 更新属于firebase中任何用户的节点
我对firebase很陌生。我在firebase数据库中有一些由用户UID分隔的节点。是否有可能找到用户的uid,然后更新该用户密钥下的节点? 例如,获取example@email.com然后将该用户的设置中的访问值更新为false?我怎么能这样做Node.js 更新属于firebase中任何用户的节点,node.js,firebase,firebase-realtime-database,Node.js,Firebase,Firebase Realtime Database,我对firebase很陌生。我在firebase数据库中有一些由用户UID分隔的节点。是否有可能找到用户的uid,然后更新该用户密钥下的节点? 例如,获取example@email.com然后将该用户的设置中的访问值更新为false?我怎么能这样做 { "users":{ "EXuTWDl95MYPxY":{ "email":"example@email.com", "name":"user", "uid":"EXuTWDl95
{
"users":{
"EXuTWDl95MYPxY":{
"email":"example@email.com",
"name":"user",
"uid":"EXuTWDl95MYPxY"
}
},
"settings":{
"EXuTWDl95MYPxY":{
"access":true
}
}
}
是否有可能找到用户的uid,然后更新该用户密钥下的节点
Firebase中没有客户端API可以通过其电子邮件地址查找其他用户的UID,因为这会暴露敏感数据
但是,您可以在Firebase上自己构建一些东西,例如,允许通过数据库中的电子邮件地址查找用户的UID。您当前的数据库结构如下所示:
firebase.database().ref("users").orderByChild("email").equalTo("example@email.com")
但请注意,这要求用户具有对/users
的完全读取权限,这意味着他们还可以读取每个用户的其他数据
因为您在标签中提到了
node.js
:有一个运行在node.js上的Firebase管理SDK。此SDK以特权模式运行,允许is访问Firebase项目中的所有数据。这意味着它只能在受信任的环境中运行,例如您的开发机器、您控制的服务器或Firebase的云功能
使用Admin SDK,您可以通过以下方式查找用户的UID:
admin.auth().getUserByEmail(email)
有关完整的示例,请参见。是的,这可以用几乎任何现代语言完成。