Как я могу отделить пользовательские данные в Firebase? - PullRequest
0 голосов
/ 13 июня 2019

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

В настоящее время я использую:

Firestore.firestore().collection("Events").  

Это можно изменить на префикссобытие с идентификатором пользователя

Я сейчас читаю все, используя:

reference(to: "Events").addSnapshotListener{ (snapshot, _) in
    guard let snapshot = snapshot else {return}
    for document in snapshot.documents {
        // code here
    }
}

1 Ответ

1 голос
/ 13 июня 2019

Не очень хорошая идея использовать префиксы в именах коллекций. Это плохо работает с правилами безопасности.

Обычная структура данных для каждого пользователя состоит в том, чтобы иметь коллекцию с документами, идентификаторы которых являются идентификаторами пользователей. Затем вы можете дополнительно организовать другие данные в подколлекциях под этим идентификатором документа.

/users
  /uid1
  /uid2
    /events
    /likes
    /history

Затем вы можете написать правила безопасности, используя UID пользователя очень легко.

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