我在http callable 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()
覆盖了日志下的记录(ID为-LDshYx2wJK6eT47_OVQ)。我希望它使用push()
中自动生成的密钥在日志下添加新记录。我之前使用了一种非常类似的方法(基本上没有差异),按预期工作。
我也尝试将set()
更改为update()
,但它仍然覆盖了。我忽略了我的路径或数据库结构有什么问题吗?感谢。