2016-11-24 98 views
1

我想創建一個牆/時間線,顯示currentUser正在關注的所有用戶的帖子。 currentUser正在追蹤的所有用戶在Users -> UserID -> Following下顯示。每當其中一個追隨者發佈帖子時,它將被添加到feed-items下的自動ID--同時將密鑰(自動ID)添加到currentUserUsers -> UserID -> Wall顯示來自當前用戶牆的帖子 - Firebase/Swift

下面是一個例子,從我的火力地堡數據庫中的圖像: enter image description here

Wall,你可以看到,該用戶的一個追隨者已經發了一個帖子(全員額feed-items下保存)和自動識別該帖子已經交給了用戶Wall。

現在我想弄清楚如何根據currentUser s Wall中存儲的autoID顯示feed-items中的所有帖子。

我曾嘗試下面的代碼,但沒有表明,當它到達此行print(self.updates.count)正在打印0

func startObersvingDB(userID: String) { 

     FIRDatabase.database().reference().child("Users").child(userID).child("Wall").observeEventType(.ChildAdded, withBlock: { snapshot in 

      if let posts = snapshot.value!["Post"] as? String { 
       self.postArray.append(posts) 


       for i in 0..<self.postArray.count { 

        let post = self.postArray[i] 

        print(post) 
        FIRDatabase.database().reference().child("feed-items").queryEqualToValue(post).observeEventType(.Value, withBlock: { (snapshot: FIRDataSnapshot) in 
         var newUpdates = [Sweet]() 


         for update in snapshot.children { 
          let updateObject = Sweet(snapshot: update as! FIRDataSnapshot) 
          newUpdates.append(updateObject) 

         } 

         self.updates = newUpdates.reverse() 
         print(self.updates.count) 
         self.tableView.reloadData() 


        }) { (error: NSError) in 
         print(error.description) 
        } 
       } 

      } 
     }) 

    } 

回答

1

如果我猜對的,你的結構飼料項是這樣的。

feed-items 
    -UniquePostID 
     -Post Data (key-value pair(s)) 

如果是這樣那麼對於後使用.child(post)代替.queryEqualToValue(post)檢索數據的情況。另外,因爲這將返回DataSnapshot單個帖子,你可以直接創建你的Sweet對象,並將其追加到現有的updates數組中。

還有一件事我不認爲你需要迭代整個postArray每次添加一個新的職位。您應該僅檢索新帖子的數據。

希望這有助於!

相關問題