AutoID 的 Swift Firebase 数据库数组

Posted

技术标签:

【中文标题】AutoID 的 Swift Firebase 数据库数组【英文标题】:Swift Firebase Database Array of AutoID 【发布时间】:2017-03-21 04:36:06 【问题描述】:

    我想将来自所有 ChildDBYAutoID 的每个图形项接收到一个双精度数组中。

    另外,有没有更好的方法通过计数来做到这一点,所以没有自动 ID?比如例子:

    0 724 1 744 2 745 3 800 . . .

我的主要目标是上传许多图表值,而不仅仅是更新一个。然后将图形值检索到一个双精度数组中。

func uploadToFirebase()

   //Firebase Initialization
    var ref: FIRDatabaseReference!
    ref = FIRDatabase.database().reference()

    ref.child("general_room_index").childByAutoId().setValue(["graph_value": totalCountY])



databaseRef.child("general_room_index").observeSingleEventOfType(.Value, withBlock:  (snapshot) in

  snapshot.value!["medals"] as! [Double]

    )

【问题讨论】:

用你的数组试试enumerate 所以基本上你想在你的firebase general_room_index 节点中存储一个[Int:Int] 字典并以相同的方式检索?? 【参考方案1】:

据我了解您的问题,您必须将 JSON 结构更改为:-

genera_Room_Index_Count : 3,

genera_Room_Index : 
       1 : 123,
       2 : 321, 
       3 : 565
          

将您的genera_Room_Index_Count 初始化为 0;相同的安全规则将适用于genera_Room_Index_Count 节点;然后开始附加值

 func uploadToFirebase(your_Value : Int)   // your_Value is your graph value as parameter

   FIRDatabase.database().reference().child("genera_Room_Index_Count").observeSingleEvent(of: .value, with: (Counts) in

        let count = Counts.value as! Int + 1

        print(count)

        FIRDatabase.database().reference().child("genera_Room_Index").child(String(describing: count)).setValue(your_Value, withCompletionBlock:  (Err, Ref) in

            print(Err ?? "No error")
            print(Ref)

            if Err == nil

                FIRDatabase.database().reference().child("genera_Room_Index_Count").runTransactionBlock( (currentData) -> FIRTransactionResult in

                    var value = currentData.value as? Int

                    if value == nil 
                        value = 0
                    

                    currentData.value = value! + 1

                    return FIRTransactionResult.success(withValue: currentData)

                )
            
        )
    )

安全规则

"genera_Room_Index" :

     ".read" : "true",    // Or whatever your authentication flowchart might be
    ".write" : "true",    // Or whatever your authentication flowchart might be


  ,

  "genera_Room_Index_Count" :

     ".read" : "true",     // Or whatever your authentication flowchart might be
    ".write" : "true",     // Or whatever your authentication flowchart might be 


  ,

【讨论】:

以上是关于AutoID 的 Swift Firebase 数据库数组的主要内容,如果未能解决你的问题,请参考以下文章

AutoID 的 Swift Firebase 数据库数组

如何在swift ui中使用autoid将带有字段的新文档添加到firebase集合

Firebase创建的模型在swift中具有可选值

访问唯一 AutoID 中的 Firebase 数据

Firebase 在 Swift 中检索低于自动 ID 的数据

Swift Firebase 读取孩子的孩子