簡體   English   中英

使用Swift中的queryEqualToValue將Firebase數據附加到數組

[英]Append Firebase data to an array using queryEqualToValue in Swift

我有一個關於將Firebase數據附加到Swift ios中的數組的問題。 當我使用queryEqualToValue為超鏈接中給出的數據運行此代碼時,它提供了queryCount具有的元素數。 但是,我希望將所有元素轉換為數組。

例如,當我運行kısıt(3) ,我希望在Sesgrup = 3情況下獲得所有HHtype值。 並且,將這些元素存儲在一個數組中。 你能幫幫我嗎?

我有如下數據:

{
  "1400001" : {
    "HHtype" : 3,
    "Sesgrup" : 4,
    "lg_Et harcaması" : 0,
    "lg_Total Harcama" : 3.11
  },
  "1400002" : {
    "HHtype" : 1,
    "Sesgrup" : 4,
    "lg_Et harcaması" : 1.2,
    "lg_Total Harcama" : 3.15
  },
  "1400004" : {
    "HHtype" : 3,
    "Sesgrup" : 4,
    "lg_Et harcaması" : 1.18,
    "lg_Total Harcama" : 3.06
  },
  "1400005" : {
    "HHtype" : 4,
    "Sesgrup" : 3,
    "lg_Et harcaması" : 2.21,
    "lg_Total Harcama" : 3.74
  },
  ....... (9000unit)

最后答案的代碼:

func kısıt(sesNotoSet: UInt){

    var rootRef: FIRDatabaseReference!
    var haneRef: FIRDatabaseReference!
    var numbersArray = [Int] ()

    self.sesNo = sesNotoSet



    rootRef = FIRDatabase.database().reference()
    haneRef = rootRef.child("SES2014")

    var queryCount : UInt = sesNotoSet
    haneRef.queryOrderedByChild("Sesgrup").queryEqualToValue(queryCount).observeEventType(.ChildAdded, withBlock: { (snapshot) in
        print(snapshot)

        if let HHtypeDict = snapshot.value! as? [String:AnyObject]{
            for each in HHtypeDict{
                numbersArray.append(each.1["HHtype"] as! Int)
            }

            queryCount -= 1
            if queryCount <= 0 {
                print(numbersArray)
            }


        }

    })



}

給定錯誤: fatal error: unexpectedly found nil while unwrapping an Optional valueprint(snapshot) fatal error: unexpectedly found nil while unwrapping an Optional value為:

Snap (1400005) {
    HHtype = 4;
    Sesgrup = 3;
    "lg_Et harcamas\U0131" = "2.21";
    "lg_Total Harcama" = "3.74";
}

但是,快照應該有425個這樣的元素

嘗試這個 :-

  func kısıt(sesNotoSet: UInt){

    var rootRef: FIRDatabaseReference!
    var haneRef: FIRDatabaseReference!
    var numbersArray = [Int] ()

    self.sesNo = sesNotoSet



    rootRef = FIRDatabase.database().reference()
    haneRef = rootRef.child("SES2014")

    var queryCount : UInt = sesNotoSet
    haneRef.queryOrderedByChild("Sesgrup").queryEqualToValue(queryCount).observeEventType(.ChildAdded, withBlock: { (snapshot) in


        if let HHtypeDict = snapshot.value! as? [String:AnyObject]{
           for each in HHtypeDict{
           numbersArray.append(each.1["HHtype"] as! Int)
              }

        queryCount -= 1
        if queryCount <= 0 {
            print(numbersArray)
        }

      }

    })



}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM