Как назначить GUID для записей в базе данных Firebase Realtime при импорте JSON - PullRequest
0 голосов
/ 05 сентября 2018

Мне нужно импортировать большой набор данных в базу данных Firebase Realtime для нового приложения для Android. Подготовка данных не проблема, у меня есть сценарий VBA в Excel, который делает это, однако я хотел бы, чтобы некоторые узлы в импортированной базе данных имели GUID, например, сгенерированные при «отправке» новых данных в Firebase. Я не могу узнать, как это сделать.

Например, если я импортирую этот набор тестовых данных:

{
"Genera": {
    "Genus_1": {
        "S001" : {
            "name": "name_1",
            "common_name": "common_1"
        },
        "S002": {
            "name": "name_2",
            "common_name": "common_2"
        }
    }
}

Я хотел бы заменить строки "Genus_1" и "Sxxxx" на строку типа GUID.

Если это возможно, как бы я этого достиг. Спасибо, Sid

1 Ответ

0 голосов
/ 05 сентября 2018

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

  1. Импорт каждой части в отдельном вызове.
  2. Предварительно сгенерируйте свои собственные ключи.

Импорт каждой части в отдельном вызове

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

curl -X POST -d '{
  "S001" : {
    "name": "name_1",
    "common_name": "common_1"
  }
}' 'https://yourdb.firebaseio.com/Genera.json'

Так как вы используете POST здесь, сервер Firebase сгенерирует новый ключ под Genera для JSON в этом вызове.

Предварительно сгенерируйте свои собственные ключи

Если вы хотите импортировать JSON за один раз, вам придется предварительно сгенерировать ключи самостоятельно. К счастью, алгоритм для генерации push-идентификаторов доступен онлайн и задокументирован в этом сообщении в блоге: 2 ^ 120 способов обеспечить уникальные идентификаторы .

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