2017-08-16 42 views
0

我是一名新程序员,正在与Firebase苦苦挣扎...... Firebase网站上的内容不足以满足没有经验的人。我试图在现有节点(-KrgRoE_GoZGoMZk_bxl)添加新的信息,但我根本无法做到这一点...看到,我可以用下面这段代码让我的最后一个寄存器:如何轻松地在现有节点中添加新信息(firebase + Swift 3)

ref = FIRDatabase.database().reference() 
let last = ref?.child("CAD").child((FIRAuth.auth()?.currentUser?.uid)!) 

     last!.observeSingleEvent(of: .value, with: { (snapshot) in 
      print(snapshot.children.allObjects.last) 

见火力点数据:

tIFgcSHDWAYguUJ5jNPYhfuqT903 
    KrgRoE_GoZGoMZk_bxl 
{ 
    "COORDENADAS" : "(-25.462915289401252, -49.290945083371739)", 
    "DATA" : "16/08/2017", 
    "HORA" : "16:9:23", 
    "LOCALIZACAO" : "Rua Professor Basílio Ovídio da Costa, 19", 
    "PERIODO" : "1 Hora", 
    "VALOR" : 3 
} 
+0

您已经包含JSON图片树在你的问题。请用实际的JSON替换为文本,您可以通过单击[您的Firebase数据库控制台](https://console.firebase.google.com/project/_/database/data/)中的导出JSON链接轻松获取该文本。 。将JSON作为文本可以搜索,使我们能够轻松使用它来测试您的实际数据,并将其用于我们的答案中,并且通常只是一件好事。 –

回答

0

根据documentation,您使用setValue添加新数据,并且updateChildValues更改数据。此外,您可以使用查询来限制返回到最后一个数据的孩子数量,而不是观察当前用户下所有数据的值。现在我不太确定你要添加到子节点的内容,但访问一个孩子并向其添加新数据可能如下所示:

ref = FIRDatabase.database().reference() 
let last = ref?.child("CAD").child((FIRAuth.auth()?.currentUser?.uid)!) 

last!.queryLimited(toLast: 1).observeSingleEvent(of: .value, with: { (snapshot) in 
    print(snapshot.value) 
    let value = snapshot.value as? NSDictionary 
    // Do whatever you need to do with value 

    let key = snapshot.key 

    last.child(key).setValue(["newData": newData]) // add new key/value pair 
}) 
+0

让,我不得不使用答案来添加我对你的答案的评论,因为它太多的人物......希望你能帮助。谢谢 –

相关问题