Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将多个数据写入firebase?_Ios_Swift_Firebase_Firebase Realtime Database - Fatal编程技术网

Ios 如何将多个数据写入firebase?

Ios 如何将多个数据写入firebase?,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我在将多个数据写入firebase时遇到问题。我有三个不同的数组,一个int,我必须取uid的子(地址)和uid的名字。用一种简单的方法,我想在一个节点上下订单,我必须在同一个节点上写下所有这些数据。我试图将其设置为值,但只需要最后一个值,其他值就会被删除。我找不到任何办法来修理它。我怎样才能解决这个问题 这是我的代码: func firebaseConfigForUserAndAdress() { guard let uid = Auth.auth().currentUser?.uid

我在将多个数据写入firebase时遇到问题。我有三个不同的数组,一个int,我必须取uid的子(地址)和uid的名字。用一种简单的方法,我想在一个节点上下订单,我必须在同一个节点上写下所有这些数据。我试图将其设置为值,但只需要最后一个值,其他值就会被删除。我找不到任何办法来修理它。我怎样才能解决这个问题

这是我的代码:

func firebaseConfigForUserAndAdress() {
    guard let uid = Auth.auth().currentUser?.uid else { return }

    // these are my arrays
    print(siparisEdilenUrunleriTutanArray)
    print(siparisEdilenFiyatlariTutanArray)
    print(siparisEdilenCountlariTutanArray)



     // values for only try... 
    var values = siparisEdilenUrunleriTutanArray + siparisEdilenFiyatlariTutanArray


    let refOrder = Database.database().reference().child("orders").child("kullanicilar").child(uid)

    refOrder.setValue(values, withCompletionBlock: { (error, ref) in
            if let error = error {
                print("Failed to update database values with error: ", error.localizedDescription)
                return
            }


            //self.dismiss(animated: true, completion: nil)
        })
    refOrder.setValue(["urun sayilari" : self.siparisEdilenCountlariTutanArray])
}

如何将这些数据写入firebase?

我不确定是否理解正确,但我认为您可能正在寻找
childByAutoId()
。当您在某个位置调用
childByAutoId()
时,Firebase将在该位置下生成一个唯一的ID,然后您可以在该位置下写入数据

对你来说,这看起来像:

let refOrder = Database.database().reference().child("orders").child("kullanicilar").child(uid)

refOrder.childByAutoId().setValue(values, withCompletionBlock: { (error, ref) in
  ...

我在docs上看到过这种方法,但它给了我很多自动识别功能。这样做正确吗?
childByAutoId
将在每次调用它时生成一个唯一的ID。如果这不是您想要的(但您也不希望每次都覆盖现有数据),那么您需要确定生成新ID的频率。因此,与其描述你不想要的行为,不如试着描述你想要的,然后实现它。