- Расскажите, пожалуйста, как мне сохранять данные в Firestore (структура)
Если вы используете аутентификацию, возможная схема базы данных для вашего варианта использования приложения можетбыть:
Firestore-root
|
--- users (collection)
|
--- uid (document)
|
--- // user properties
|
--- contacts (subcollection)
|
--- contactId (document)
|
--- phoneNumber: 123456789
|
--- // other contact properties
Чтобы получить все контакты, которые есть у пользователя, просто присоедините слушателя к ссылке на контакт:
db.collection("users").document(uid).collection("contacts");
пожалуйста, скажите мне прочитать одно имя контакта с помощью номера
Чтобы получить информацию об одном контакте с номером телефона, используйте следующий запрос:
db.collection("users").document(uid).collection("contacts").whereEqualTo("phoneNumber", 123456789);
В соответствии с официальной документацией относительно максимального количества документов, которое может быть добавлено в одну партию :
Каждая транзакция или партия записей может записывать максимум до500 документов.
Таким образом, вам нужно разделить свои контакты на части по 500 документов, чтобы иметь возможность добавить все эти контакты в Firestore.
Редактировать:
, если я предполагаю, что один пользователь имеет 4000 контактов в своем телефоне (только номер мобильного телефона и имя * 4000 = 8000 данных от одного пользователя).
Это неверноЕсли у вас есть только 2 свойства (в документе контакта), у вас будет только 4000 операций записи и , а не 8000, поскольку оба свойства являются частью одного и того же документа.Таким образом, вы должны записать их вместе, используя пакетную запись или класс POJO.
, если число пользователей станет 5 миллионами, это будут огромные данные, которые необходимо хранить в Firestore.
Это правильно, но в то же время это означает, что у вас будет очень успешное приложение, и вы можете позволить себе все эти операции записи.5 миллионов, поверьте мне, это очень много.
поэтому я хочу схему, которая должна быть наилучшей и должна занимать как можно меньше места
Проблема не в пространстве,проблема заключается в количестве операций чтения и записи, которые вы выполняете.Evrything в Firestore о количестве операций чтения и записи.
Я ожидаю очень эффективный способ сохранения данных.пожалуйста, помогите
По моему мнению, приведенная выше схема поможет вам решить проблему.
, учитывая, что этот ответ все же является вашим лучшим решением?
Учитывая ваш запрос на ваш вопрос и комментарии, да.
возможно ли игнорировать uid, идентификатор контакта и может иметь только эти параметры
Толькоесли вы используете базу данных реального времени Firebase , которая является другим продуктом.Нет никаких коллекций и документов, только структура базы данных JSON.