Установить поле созданного в документе с текущим идентификатором пользователя (auth.uid) - PullRequest
0 голосов
/ 20 марта 2020

Я знаю, что у Firebase есть класс FieldValue, который можно использовать, например, для создания временной метки на стороне сервера при написании документа ( ссылка ).

Какая практика предпочтительнее для вставки uid текущего пользователя в документ?

Если клиент предоставит это поле, возможно, допустит неправильное использование - если я не предоставлю серверное правило, которое проверяет (новые / обновленные) документы на соответствие request.auth.uid, что-то как:

service cloud.firestore {
  match /databases/{database}/documents {
    match /broadcasts/{broadcast}/chatMessagesCollection/{message} {
      allow write: if request.resource.data.uid == request.auth.uid;
      allow read: if true;
    }
  }
}

Я не могу найти что-либо в Интернете для случая использования документа, заполняемого пользователем, пишущим его - так, как лучше всего это сделать?

1 Ответ

1 голос
/ 20 марта 2020

То, что вы сейчас делаете с правилами безопасности, чтобы обеспечить соответствие предоставленного UID текущему пользователю, - это именно то, что нужно делать. На самом деле нет ничего лучше (для этого конкретного c варианта использования), и это обычная практика.

Я даже писал об этом в этой серии блогов: https://medium.com/firebase-developers/patterns-for-security-with-firebase-per-user-permissions-for-cloud-firestore-be67ee8edc4a

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...