У меня есть строка кода внутри вызываемой 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()
, но он все еще перезаписан.Что-то не так с моим путем или структурой базы данных, которую я пропускаю?Спасибо.