Как мне связать данные пользователя с пользователем в firebase?

#javascript #firebase #google-cloud-firestore #firebase-authentication

#javascript #firebase #google-облако-firestore #firebase-аутентификация

Вопрос:

Итак, я создал базовое библиотечное приложение, которое позволяет пользователям хранить коллекцию книг. Я внедрил систему входа в firebase, но теперь я не уверен, как связать пользователя с их коллекцией. Мой план таков:

  • Создайте коллекцию с именем library
  • Добавляйте book s в library всякий раз, когда кто-либо добавляет книгу
  • Для вышеупомянутого объекта book добавьте поле идентификатора пользователя
  • Чтобы получить прочитанные книги текущего пользователя для отображения, просто отфильтруйте данные с помощью user_id

Это подходящий метод? Если нет, то как мне это сделать?

Я не уверен, потому что сохранение поля user_id и просмотр всех книг для поиска книг текущего пользователя не кажутся эффективными.

Комментарии:

1. Почему Javascipt помечен в вопросе Android?

Ответ №1:

Если вы добавите идентификатор пользователя к объекту book , то всякий раз, когда вы ищете что-либо для одного пользователя, вам нужно будет просмотреть весь список книг и весь список пользователей.

Однако, если вы создадите таблицу для ‘Books_By_User_Id’ и под ней создадите ветку для каждого пользователя, а затем под ней вставьте идентификатор выбранной им книги, то вы значительно сократите объем поиска.

Если вы затем захотите выполнить поиск, вы можете сразу перейти к ‘Books_By_User_Id / userid /’ и вернуть только те книги, которые принадлежат этому пользователю.

Комментарии:

1. таблица в firebase?

2. Я имею в виду базу данных в реальном времени. Я предположил, что вы используете базу данных в реальном времени (возможно, глупое предположение). Где вы храните свои данные?

3. Вы можете создать коллекцию под названием users и добавить документ для каждого пользователя, у которого есть массив книг пользователей.

4. @WarrenHarding firestore

5. Обычно я использую Firebase Realtime Database, а не Firestore, но Firestore — очень похожая альтернатива.