Firebase Permisson запрещен после обновления Android-приложения из магазина Play

Я разработал приложение, которое использует аутентификацию телефона Firebase и базу данных Cloud Firestore, и опубликовал его в магазине игр. Моя проблема заключается в том, что когда я обновляю приложение из магазина игр, у меня появляется подобное исключение (пользователь уже успешно вошел в мое приложение).

"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;
        }
    }
}

1 ответ

Я получил исключение, подобное этому (пользователь уже успешно вошел в мое приложение)

Это потому, что ваш пользователь уже аутентифицирован. Чтобы избежать такого сообщения, просто подпишите пользователя с помощью следующей строки кода:

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;