Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 更新属于firebase中任何用户的节点_Node.js_Firebase_Firebase Realtime Database - Fatal编程技术网

Node.js 更新属于firebase中任何用户的节点

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

我对firebase很陌生。我在firebase数据库中有一些由用户UID分隔的节点。是否有可能找到用户的uid,然后更新该用户密钥下的节点? 例如,获取example@email.com然后将该用户的设置中的访问值更新为false?我怎么能这样做

{  
"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)

有关完整的示例,请参见。

是的,这可以用几乎任何现代语言完成。