Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
如何为自定义身份验证firebase创建auth.uid_Firebase_Firebase Realtime Database_Google Cloud Firestore_Firebase Authentication_Firebase Security - Fatal编程技术网

如何为自定义身份验证firebase创建auth.uid

如何为自定义身份验证firebase创建auth.uid,firebase,firebase-realtime-database,google-cloud-firestore,firebase-authentication,firebase-security,Firebase,Firebase Realtime Database,Google Cloud Firestore,Firebase Authentication,Firebase Security,我是firebase新手,正在创建消息应用程序,并使用专用otp服务注册电话号码。我同时使用实时数据库和firestore,因此我需要在安全规则中保护数据库。似乎在安全规则中使用auth.uid是唯一的方法 我正在实时数据库中保存聊天线程,并在firestore中保存用户配置文件 如何为使用专用otp服务进行身份验证的用户电话号码的安全规则创建auth.uid 请帮助我如何处理这一问题。正如雷诺评论的那样,您需要: 将用户登录到您自己的自定义后端 将此登录中的信息用于Firebase Admin

我是firebase新手,正在创建消息应用程序,并使用专用otp服务注册电话号码。我同时使用实时数据库和firestore,因此我需要在安全规则中保护数据库。似乎在安全规则中使用auth.uid是唯一的方法

我正在实时数据库中保存聊天线程,并在firestore中保存用户配置文件

如何为使用专用otp服务进行身份验证的用户电话号码的安全规则创建auth.uid


请帮助我如何处理这一问题。

正如雷诺评论的那样,您需要:

  • 将用户登录到您自己的自定义后端
  • 将此登录中的信息用于Firebase Admin SDK
  • 将自定义令牌传递给客户端
  • 使用自定义令牌在客户端上创建Firebase

  • 此时,Firestore和实时数据库的安全规则中提供了来自自定义令牌的信息。

    您似乎应该查看Firebase电话身份验证:。请注意,使用Admin SDK可以设置用户uid的值,请参阅@RenaudTarnec我不想使用firebase phone auth。特别是signinwithphonenumber使用recaptcha发送新的otp短信(我不喜欢ui流),但我已经使用专用otp服务验证了phonenumber。我可以从客户端为我的验证过的电话号码创建auth.uid吗。根据您的建议,是使用客户端的admin sdk设置uid值的安全方法吗。“我是否可以从客户端为已验证的电话号码创建auth.uid。根据您的建议,是否使用admin sdk设置uid值”=>是。为此,您需要使用您控制的后端服务器,或更简单的云函数。”从客户端安全。。。这是一种安全的方法“=>这实际上很难回答。这完全取决于客户端(以及哪个客户端,例如Admin?)从前端调用云函数。您可能会对此感兴趣,它显示了如何创建管理Firebase用户访问和角色的管理模块。在云函数中创建用户id时,我们不指定用户id,但您只需要按照上面链接(我的第一条评论)
    Admin.auth()中显示的示例进行操作.createUser({uid:'some uid',电话号码:'+11234567890'})
    @RenaudTarnec所以我需要使用云函数中的admin sdk设置uid值。我会研究它。非常感谢。如果我在创建uid方面遇到任何困难,我可以再次提出疑问。嘿,谢谢你的回答。我有一个疑问。你能帮我理解这个自定义令牌是如何工作的吗。黑客可以伪造用户信息并创建自己的令牌吗用于访问数据库的自定义令牌。生成令牌需要您项目的私有凭据。如果这些凭据落入恶意用户手中,则他们可以完全访问您的项目,因此,关键是将其仅保留在受信任的环境中。使用私有otp服务验证phonenumber后。我正在使用phone触发云功能数字作为uid创建要登录的自定义令牌。如果恶意用户使用其好友电话号码触发云功能,通过反向工程获取自定义令牌并登录访问其好友数据库,会发生什么情况。它实际上是如何工作的。如果是这种情况,我如何避免这种情况。听起来我的答案中的步骤1在您的场景。电话号码验证的Firebase文档包含一个注意事项:似乎除了在电话验证中使用密码之外,没有其他方法可以保护数据库免受未经授权的数据访问。