Почему этот push () перезаписывается, а не добавляется? - PullRequest
0 голосов
/ 01 июня 2018

У меня есть строка кода внутри вызываемой http функции Firebase, которая должна добавить новую запись к месту в базе данных Firebase.

return admin.database().ref('games/' + gameid + '/' + uid + '/logs/').push().set({guess: guess, result: pigs.toString() + 'P ' + bulls.toString() + 'B', score: score});

Вот примерзапись в моей базе данных.

"games" : {
    "39dba69c-f5a8-4e94-9553-d19372d43a92" : {
      "1P0mWbp1jYOayaMEyQcnKvX4YB63" : {
        "logs" : {
          "-LDshYx2wJK6eT47_OVQ" : {
            "guess" : "5647",
            "result" : "1P 1B",
            "score" : 450
          }
        },
        "maxbulls" : 3,
        "maxpigs" : 3,
        "moves" : 6,
        "score" : 450
      },
      "answer" : "2739dba69c41",
      "id" : "39dba69c-f5a8-4e94-9553-d19372d43a92",
      "requestor" : "1P0mWbp1jYOayaMEyQcnKvX4YB63",
      "status" : "pending",
      "turn" : ""
    }
  }

По какой-то причине set() перезаписывает запись в журналах (идентификатор -LDshYx2wJK6eT47_OVQ).Я хочу добавить новую запись в журналы с автоматически сгенерированным ключом из push().Ранее я использовал очень похожий метод (практически без различий), который работал по назначению.

Я также пытался изменить set() на update(), но он все еще перезаписан.Что-то не так с моим путем или структурой базы данных, которую я пропускаю?Спасибо.

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