Вопросы

Правило Firestore — запрос поля документа без раскрытия всей коллекции

У меня есть users коллекция, в которой есть документы, содержащие различные поля. Каждый идентификатор документа — это идентификатор пользователя firebase, а поля содержат пользовательские данные.

Я использую следующее правило:

match /databases/{database}/documents {
  // Make sure the uid of the requesting user matches name of the user document.
  match /users/{userId} {
    allow read, update, delete: if request.auth.uid == userId;
    allow create: if request.auth.uid != null;
  }
}

Пользователи могут выбирать любимые песни, которые сохраняются в поле массива. Теперь у меня есть требование запрашивать в базе данных пользователей, которые добавили определенные песни в избранное. Я создал следующий запрос:

FirebaseFirestore db = FirebaseFirestore.getInstance();
CollectionReference usersRef = db.collection("users");
usersRef.whereArrayContains("favouriteSongs", "id_of_song");

При выполнении запроса возвращается следующая ошибка:

com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED: разрешения отсутствуют или недостаточны.

Очевидно, мне нужно изменить правило Firestore, чтобы пользователь мог запрашивать поле favouriteSongs; однако я не хочу, чтобы все пользовательские данные были доступны всем.

Читать:
Эффективность запросов Firebase с использованием поля where и альтернативы

Есть ли способ раскрыть данные favouriteSongs (которые содержат только идентификаторы) и гарантировать, что чтение остальной части пользовательской коллекции ограничено?

Спасибо

Если вы хотите показать пользователю только часть документа, то ответ DarkNeuron правильный. Мне просто интересно, если вы на самом деле не интересуетесь как безопасно запрашивать данные < / а>.   —  person Michael J    schedule 25.09.2020

Похожие записи

OR-Tools: Как я могу не подсчитать время ожидания от депо до момента первого выхода?

admin

Xcode и Swift — невозможно создать экземпляр другого контроллера представления из AppDelegate

admin

Обновление масштабируемого набора виртуальных машин Azure

admin

Изменение порядка столбцов в R

admin

Ошибка Flutter json.decode ‹! Doctype html› ошибка

admin

Flutter Fire Сохраняет порядок по и где запросы вызывают ошибку

admin