将数据写入firebase而不覆盖它。迅速

时间:2017-09-12 11:05:46

标签: ios swift firebase firebase-realtime-database

我刚刚让我的应用程序在firebase上运行,我只是遇到了覆盖数据的小问题。

行动:

 @IBAction func Gem(_ sender: UIButton) {
    self.ref.child("users").child(Personnr.text!).setValue(["Fornavn": Fornavn.text!])
    self.ref.child("users").child(Personnr.text!).setValue(["Efternavn": Efternavn.text!])
}

问题是它写入第一个命令,然后删除它并写入第二个命令。 我是编程新手,所以它可能只是简单。

我已经澄清了文本字段,用户将从中写入数据,然后将数据上传到数据库。

@IBOutlet weak var Fornavn: UITextField!

@IBOutlet weak var Efternavn: UITextField!

@IBOutlet weak var Personnr: UITextField!

@IBOutlet weak var Korekort: UITextField!

有关如何避免覆盖的任何线索?

3 个答案:

答案 0 :(得分:2)

这很正常,所以你能做的就是制作一本像这样的字典

let data = ["Fornavn": Fornavn.text!,"Efternavn": Efternavn.text!]

然后再做

self.ref.child("users").child(Personnr.text!).setValue(data)

这样做是因为它在Personnr.text父节点下存储Fornavn和Efternavn数据

答案 1 :(得分:1)

假设您有一个名为Personnr.text的节点。

如果要在此节点上添加更多子节点或更新当前数据,可以使用updateChildValues函数

顺便说一句,您可以通过以下方式优化查询:

self.ref.child("users").child(Personnr.text!) .updateChildValues(["Fornavn": Fornavn.text!],["Efternavn": Efternavn.text!])

答案 2 :(得分:0)

试试这个

let arrVal = [["Fornavn": Fornavn.text!],["Efternavn": Efternavn.text!]]
self.ref.child("users").child(Personnr.text!).updateChildValues(arrVal)

参考:https://firebase.google.com/docs/database/ios/read-and-write