У меня есть следующий документ
и я установил следующие правила
Каждый раз, когда я пытаюсь прочитать документ с помощью Android SDK
FirebaseFirestore db = FirebaseFirestore.getInstance();
db.collection("users").get().addOnCompleteListener(appExecutors
.networkIO(),
task -> {});
Я получаю эту ошибку
"com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED: Missing or insufficient permissions."
Я не уверен, что не так, это правила или вызов Android.
Похоже, вы хотели ввести в правиле resource.data.author_id вместо resource.data.author_d.
Этот код пытается получить доступ к каждому документу во всей коллекции пользователей:
db.collection("users").get()
Если в этой коллекции есть какой-либо документ, нарушающий установленные вами правила безопасности, он завершится ошибкой.
Вместо этого вы намеревались попытаться получить доступ к единственному документу, к которому должен иметь доступ пользователь?
Я думаю, вы можете исправить это с помощью консоли firebase. Вам просто нужно разрешить доступ всем пользователям. Насколько я помню, по умолчанию были разрешены только авторизованные пользователи.
Кажется, мне пришлось добавить где-то рядом в моем коде
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
FirebaseFirestore.setLoggingEnabled(true);
FirebaseFirestore db = FirebaseFirestore.getInstance();
db.collection("users").whereEqualTo("authorId",user.getUid()).get().addOnCompleteListener(appExecutors.networkIO(),task -> {});
Спасибо, но, думаю, проблема не в этом. Это был всего лишь образец кода. в оригинале этой опечатки не было