2016-12-14 126 views
1

我是firebase的新手,我需要幫助。我在我的數據庫中有兩個節點:用戶和帖子,如下圖所示:對Firebase查詢執行感到困惑

users 
    uid 
     name: "William" 
     post: 
      KUhyPi5xLZBGyp-_X-W: true 
     -KWH8EVxohgNBfHuKoYy: true 

posts 
    KUhyPi5xLZBGyp-_X-W  
       comment: "I love this" 
    -KWH8EVxohgNBfHuKoYy  
       comment: "Coding is fun" 

目前我能夠顯示的tableView所有的職位。但我希望能夠像facebook一樣顯示發佈帖子的用戶的姓名。請告訴我如何在那個indexpath檢索誰做某個帖子的用戶名,從而在tableViewcell

這裏的標籤,以顯示它的代碼我用來顯示目前的tableview

DataService.ds.REF_POST.observe(
     .value, with: { (snapshot) in 
      if let snapshot = snapshot.children.allObjects as? [FIRDataSnapshot]{ 
       for snap in snapshot{ 
        print("SNAP: \(snap)") 
        if let postDict = snap.value as? Dictionary<String, AnyObject>{ 

         let key = snap.key 
         let post = Post(postKey: key, postData: postDict) 
         self.posts.append(post) 
        } 
       } 
      } 
      self.tableView.reloadData() 
    }) 

} 
所有帖子
+0

您應該從uid節點獲取用戶的名稱,然後獲取該用戶的帖子ID。 然後對帖子節點執行單獨查詢以檢索不同的帖子,並將這些帖子與您在uid節點中找到的帖子ID進行匹配。你能分享一些你的代碼嗎? –

+0

@JordiBruin我已經更新了上述問題中的代碼,請求了我目前使用的代碼來填充表格視圖 – codeperfect

+0

是使用tableView來顯示用戶及其帖子,還是顯示帖子以及發佈帖子的用戶? – Jay

回答

3

當您保存您的評論時,請將uid與其一起存儲,以便以後輕鬆查詢。

{ 
    "posts" : { 
     "KUhyPi5xLZBGyp-_X-W": { 
      "uid": "USER_ID", 
      "comment": "I love this" 
     } 
     "-KWH8EVxohgNBfHuKoYy": { 
      "uid": "USER_ID", 
      "comment": "Coding is fun" 
     } 
    } 
} 

我知道這看起來像複製你的數據,但是這也是他們建議您存儲數據,使您可以輕鬆/快速查詢。例如,一旦你得到所有yoru評論,你將收集所有的用戶id並去獲得這些個人用戶。在一個查詢中沒有辦法做到這一切。

+0

我仍然不太清楚如何按照您的建議來實施它。希望我不要求太多 – codeperfect

+0

每次保存評論時,請存儲userId。 –

+0

是的,我已經完成了這個實現。我現在有帖子保存在uid的旁邊,我遇到的挑戰在於爲該用戶檢索數據並將其附加到將填充tableview的數組 – codeperfect