android - Firebase 数据库身份验证电话权限被拒绝
问题描述
我正在尝试编写应用程序,但我遇到了一些我无法解决的安全问题,我需要帮助。我在 firebase 上使用用户电话身份验证,它工作正常。现在我想当用户 auth 被授予用户 id 保存在数据库上并且它正在工作时。
但问题是我使用此代码为新用户写入数据库的规则:
{
"rules": {
".write": "auth == null ",
".read": "auth == null "
}
}
此代码适用于新用户注册时:
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
Firebase Ref = new Firebase( "database address" );
Firebase usersRef = Ref.child( "Users" ).child( "user_id" );
usersRef.setValue( user.getUid() );
当我使用此规则身份验证被拒绝时:
{
"rules": {
".write": "auth != null ",
".read": "auth != null "
}
}
但是我的用户已经注册了,我得到了他的 id 和电话表单 Authentication user 我该如何解决这个安全问题?
D/FirebaseAuth: Notifying id token listeners about user ( b3bizXzmH7XQfXWNvHCMVXzDHSx2 ).
D/FirebaseApp: Notifying auth state listeners.
D/FirebaseApp: Notified 0 auth state listeners.
D/PhoneAuthActivity: signInWithCredential:success
D/FirebaseAuth: Notifying id token listeners about user ( b3bizXzmH7XQfXWNvHCMVXzDHSx2 ).
D/FirebaseApp: Notifying auth state listeners.
Notified 0 auth state listeners.
D/PhoneAuthActivity: signInWithCredential:success
W/RepoOperation: setValue at /Users/user_id failed: FirebaseError: Permission denied
W/RepoOperation: setValue at /Users/user_id failed: FirebaseError: Permission denied
D/FirebaseAuth: Notifying id token listeners about user ( b3bizXzmH7XQfXWNvHCMVXzDHSx2 ).
D/FirebaseApp: Notifying auth state listeners.
D/FirebaseApp: Notified 0 auth state listeners.
D/PhoneAuthActivity: signInWithCredential:success
W/RepoOperation: setValue at /Users/user_id failed: FirebaseError: Permission denied
解决方案
尝试
{
"rules": {
".write": "auth == true",
".read": "auth == true"
}
}
推荐阅读
- r - 创建一个区间 - Base R
- javascript - 从 React 中的对象导入本地图像
- sql - SSIS导入具有多个标题行的excel文件
- c# - Unity 3d & C#, if gameObject != this
- python - 将多个数据帧与互补缺失值组合的最有效方法
- r - 想要选择满足多个条件的所有行并为其创建子集
- node.js - 使用 UUID npm 模块出现奇怪的错误。我究竟做错了什么?
- angularjs - 具有多个条件的 ng-options
- java - 一旦用户输入小于 0 的数字,如何破坏扫描仪?
- c# - ServiceStack.Redis:配置让请求和响应类/dto是同一个类?