Удобочитаемые ключи для документов или коллекции - PullRequest
0 голосов
/ 14 декабря 2018

Я искал во всем стеке поток, ища способ генерирования числовых ключей или любых типов ключей, которые могут быть прочитаны для конечного пользователя.

Я нашел несколько ответов, говорящих (вы не должны).Я понял .. но какова альтернатива ..

Представьте, что у клиента, например, есть проблема, связанная с заказом, и он должен написать uid 1UXBay2TTnZRnbZrCdXh в вашем колл-центре?

1 Ответ

0 голосов
/ 14 декабря 2018

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

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

Итак, чтобы ответить на вопрос: вот один вариант

orders
  firebase_generated_key_0
     order_number: "1111"
     ordered_by: "uid_0"
     order_amount: "$99.95"
  firebase_generated_key_1
     order_number: "2222"
     ordered_by: "uid_1"
     order_amount: "$12>95"

С этой структурой у вас есть номер заказа, ссылка на пользователя, который его заказал, и общая сумма заказа.Если клиент меняет информацию о заказе, выполняется простое изменение order_amount, и заказ остается на месте.

Редактировать:

Комментарий / вопрос, задаваемый относительно условий гонки при записи данных с помощью Firebase,Существует ряд решений, но хорошей отправной точкой является использование транзакций Firebase для «блокировки» данных во избежание одновременных изменений.

См. Сохранение данных в виде транзакций для дальнейшего чтения.

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