我开发了一个使用Firebase电话身份验证和Cloud Firestore数据库的应用程序,并将其发布在Play商店中。我的问题是,当我从Play商店更新应用程序时,出现了这样的异常(用户已经成功登录了我的应用程序)。
“ com.google.android.gms.tasks.RuntimeExecutionException:com.google.firebase.firestore.FirebaseFirestoreException:PERMISSION_DENIED:缺少权限或权限不足。”
在调试应用程序时,我也多次遇到此异常。如何解决这个问题?
这是我的Firebase规则:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
答案 0 :(得分:0)
我遇到了这样的异常(用户已成功登录我的应用程序)
这是因为您的用户已通过身份验证。为避免出现此类消息,只需使用以下代码行对用户进行身份验证:
FirebaseAuth.getInstance().signOut();
在调试应用程序时,我也多次遇到此异常:
“ com.google.android.gms.tasks.RuntimeExecutionException:com.google.firebase.firestore.FirebaseFirestoreException:PERMISSION_DENIED:缺少权限或权限不足。”
这是因为您没有设置正确的权限才能将数据写入Cloud Firestore。要解决此问题,请更改以下代码行:
allow read, write: if request.auth != null;
到
allow read, write: if request.auth.uid != null;
但是,如果要允许多个用户将数据写入数据库,或者只想运行一些测试,请使用以下代码行:
allow read, write: if true;