簡體   English   中英

如何從Firebase中的每個孩子檢索數據?

[英]How to retrieve data from each child in Firebase?

我正在嘗試使用Swift在表視圖中檢索要在每個帖子中使用的所有值(post_text,時間戳,用戶名)。 我已經嘗試過此代碼,但不確定從哪里獲取帖子中的每個值。

ref.observeEventType(.Value, withBlock: { snapshot in
        self.posts = snapshot.value.objectForKey("posts") as! [String: String]
        print(self.posts)
        self.tableView.reloadData()
})

JSON Firebase文件:



    {
      "posts" : {
        "-KAqlyZ71SNZfZ4Zbs27" : {
          "post_text" : "Hello",
          "timestamp" : 1455839242909,
          "username" : "hello"
        },
        "-KAqmD6HPbhAVkjT54-k" : {
          "post_text" : "Hi",
          "timestamp" : 1455839306600,
          "username" : "user7"
        },
        "-KAr9ATmAjObiTsn4yUC" : {
          "post_text" : "Hi",
          "timestamp" : 1455845587135,
          "username" : "user7"
        },
        "-KArIBlnKSJWGhD9Me6T" : {
          "post_text" : "Dddd",
          "timestamp" : 1455847983983
        }
      },
      "users" : {
        "5476cde6-b343-476d-abb7-8131d3766ba7" : {
          "email" : "ad@ad.com",
          "posts" : {
            "-KAm_8ShLSKrKKMhNjpm" : {
              "post_text" : "Hello :)",
              "timestamp" : 1455768771004
            }
          },
          "provider" : "password",
          "username" : "ad"
        },
        "b7b7de04-e180-4cac-abd3-57c016640e32" : {
          "email" : "user@user.com",
          "posts" : {
            "-KAqmD6HPbhAVkjT54-l" : {
              "post_text" : "Hi",
              "timestamp" : 1455839306869
            },
            "-KAr9ATq-MEkYmAr2SB_" : {
              "post_text" : "Hi",
              "timestamp" : 1455845587513
            },
            "-KArIBlxY-FvbsmgF5bI" : {
              "post_text" : "Dddd",
              "timestamp" : 1455847985342
            }
          },
          "provider" : "password",
          "username" : "user7"
        },
        "fb67da22-e0dd-4ced-873b-53a588d78feb" : {
          "email" : "hello@hi.com",
          "posts" : {
            "-KAqlyZAah6bclwqWi5M" : {
              "post_text" : "Hello",
              "timestamp" : 1455839243184
            }
          },
          "provider" : "password",
          "username" : "hello"
        }
      }
    }
    

我該怎么辦?

您可以只創建可以由Dictionary初始化的對象Post 然后,只需獲取單個鍵的值即可。

var posts : [Post] = []()
json.forEach { (key, dictionary) -> in

    let post = Post(
        key: key, 
        dictionary: dictionary
    )

    posts.append(post)
}

暫無
暫無

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

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