iOS:Firebase以块的形式发送/保存数据

时间:2018-04-25 06:30:27

标签: ios swift firebase firebase-realtime-database

我试图像这样

在firebase中保存数据
class FirebaseManager {

    static let shared = FirebaseManager()

    private let tableRef = Database.database().reference(withPath: "XYZDemo")

    func add(item: HealthData) {
        self.tableRef.childByAutoId().setValue(item.dictionary)
    }
}

此代码逐个保存数据。

如何一次添加多个数据,即一次保存5个值?

1 个答案:

答案 0 :(得分:0)

要同时写入节点的特定子节点而不覆盖其他子节点,请使用updateChildValues方法。

基本上,您创建一个包含要执行的更新/写入的数组,并将该数组写入Firebase。这是一个示例,显示1个帖子被写入两个不同的位置:

//Create the new key
let key = self.tableRef.childByAutoId().key
//Post data that is going to be written
let post = ["uid": userID,
            "author": username,
            "title": title,
            "body": body]
//Create the array with (two) updates
let childUpdates = ["/posts/\(key)": post,
                    "/user-posts/\(userID)/\(key)/": post]
//Write the array to the database
ref.updateChildValues(childUpdates)

当你做这件事时要记住几件事:

  • 全部或全部,无论是所有写入失败还是所有写入都成功。如果阵列中的1个写入失败,则所有写入都将失败。
  • 确保为每次写入使用正确的引用,因为它将覆盖该位置的所有数据。