Каковы риски использования телефонного номера в качестве пользовательского идентификатора документа?
В этом нет ничего плохого, если пользователи не изменят свои телефонные номера. Но если они изменятся, у вас, вероятно, будут трудные времена с этим. Я говорю это, потому что нет способа «переименовать» идентификатор документа. Вы можете скопировать тот же документ и изменить идентификатор документа, но это подразумевает чтение нового документа, а также новую операцию записи.
Вместо этого вы можете использовать в качестве идентификатора документа uid
из процесса аутентификации Firebase . Этот uid
всегда будет одинаковым, независимо от того, какой номер телефона.
Я планирую написать правила, позволяющие пользователям редактировать только свои документы.
Этого можно добиться, даже если вы используете uid
.
Редактировать:
o в качестве идентификатора документа «Я хочу сравнить телефонную книгу пользователей с коллекцией пользователей, чтобы найти пользователей с соответствующими номерами телефонов.
Вы, вероятно, изначально думали использовать:
db.collection("users").document(phoneNumber).get();
Но вы можно выполнить то же самое, используя запрос:
db.collection("users").whereEqualTo("phoneNumber", phoneNumber).get();
Будет ли это будет дорогостоящим запросом, если вы будете делать это таким образом?
Нет, вам будет предъявлено обвинение только в одном прочитанном документе.
И считается ли этот запрос чтением документа?
Да, это имеет значение. Обратите также внимание, что есть также стоимость одного прочитанного документа, даже если запрос не дает документов.