将数据添加到Firebase中的现有节点

时间:2018-07-20 13:12:53

标签: reactjs firebase firebase-realtime-database

我正在尝试将数据添加到Firebase的现有节点中。但是每次我使用UPDATE,SET或SETWITHPRIORITY时,都会删除现有数据。如何在答案对象中添加更多答案?

config.vm.synced_folder

我现在有这个...

{
   question:
   {
     title:"What's your favorite food?",
     answers:
     {
        answer:"pizza"
     }
   }
}

1 个答案:

答案 0 :(得分:1)

正如André所说:给定节点下的键必须唯一。因此,如果您更新answers/answer,它将替换现有的answers/answer值。要添加新答案,它需要有一个新的唯一键,例如answers/answer2

生成唯一密钥的常用方法是使用Firebase内置的push()方法。这将生成一个按时间顺序排列的密钥,保证该密钥是唯一的,即使该应用程序处于脱机状态,该密钥也将继续起作用。要使用push添加答案,您可以这样做:

quizzesRef.child(quizId + '/questions/question/answers').push("sushi");

push()生成的密钥最初看起来过于复杂。我建议不要使用更简单的键。 Firebase的推送ID是许多问题的惯用解决方案。通过在应用程序中使用它们,可以避免在开发和调试中浪费大量时间。