Как дать конкретный номер ключу - PullRequest
0 голосов
/ 06 января 2019

Недавно я создал приложение для Android с Firebase в качестве бэкэнда. Я прочитал и записал параметры в моем приложении. Каждый раз, когда я загружаю данные в Firebase, генерируется автоматическое имя ключа. Я хочу дать определенное число имени ключа, например, 1,2,3,4. Как это возможно?

Firebase Структура:

enter image description here

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Я советую вам не использовать 1, 2, 3, 4 в качестве ключей для ваших узлов. Использование последовательных идентификаторов для этого является анти-паттерном, когда дело доходит до базы данных Firebase в реальном времени, поскольку оно наверняка вызовет проблемы с масштабируемостью.

Масштабируемость зависит от того, как Firesbase распределяет данные по своему уровню хранения. Таким образом, последовательные идентификаторы имеют больше коллизий хэширования, что означает, что вы быстрее достигнете ограничений записи. Наличие более случайных идентификаторов обеспечивает равномерное распределение записей по уровню хранения.

Если вам интересно, здесь , вы можете найти алгоритм здесь push() метод.

Если вы заинтересованы в реализации своего собственного механизма, вы можете взглянуть на UUID , который может помочь вам генерировать уникальные ключи для ваших узлов базы данных Firebase без использования метода push().

import java.util.UUID;

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userRef = rootRef.child("Users");
//key = userRef.push().getKey();
key = UUID.randomUUID().toString();

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

0 голосов
/ 06 января 2019

То, что вы хотите сделать, это неправильно, не делайте этого. Firebase создает этот ID для вас, чтобы предотвратить перезапись этих значений / объектов. Если 2 или более человек добавят новую запись одновременно, они могут перезаписать ее. Если вы все еще думаете, что должны это сделать, я предлагаю вам переосмыслить то, что вы делаете, потому что это неправильно.

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