2017-10-07 66 views
0

的發佈消息的列表。 這就是我得到的。我需要從用戶結構中獲得uid。然後我需要檢查用戶結構的uid,就像posts/uid一樣。這就是我不知道該怎麼辦,因爲我不知道你怎麼能在一個職位,有ID,例如得到:「-Kvs50Et17ilfzdgdhcK」。它需要以某種方式來檢查所有已放置,比從用戶UID的檢查同樣是作爲崗位的UID的職位。請幫忙!得到我想要證明<strong>當前用戶</strong>張貼的帖子</strong>的<strong>列表當前用戶

var Gametext: String = "" 
    var Consoletext: String = "" 

    var dataBaseRef: DatabaseReference! { 
     return Database.database().reference() 
    } 

    var post: Post! { 
     didSet { 

      let postsRef = dataBaseRef.child("posts/\(Auth.auth().currentUser!.uid)") 
     let userQuery = postsRef.queryOrdered(byChild: "uid").queryEqual(toValue: Auth.auth().currentUser!.uid) 
     userQuery.observe(.childAdded, with: { (snapshot) in 
      print(snapshot.childSnapshot(forPath: "Game").value as? String) 
      print(snapshot.childSnapshot(forPath: "Console").value as? String) 
     }) { (error) in 
      print(error.localizedDescription) 
     } 


     } 
    } 

這裏是我的崗位結構:

{ 
    "posts" : { 
    "-Kvs50Et17ilfzdgdhcK" : { 
     "Console" : "Xbox One", 
     "ExtraInfo" : "Test", 
     "Game" : "test", 
     "Gamertag" : "[email protected]", 
     "photoURL" : "", 
     "postDate" : 1.5074008811834E9, 
     "postId" : "C835A03A-9BAF-423E-87F0-60139DA893EB", 
     "uid" : "7E4vEew5RbMsWmSMijZxT4TzxHh1", 
     "username" : "dani Kemper" 
    } 
    }, 

這裏是我的用戶結構:

"users" : { 
     "7E4vEew5RbMsWmSMijZxT4TzxHh1" : { 
      "Console" : "Xbox One", 
      "Gamertag" : "[email protected]", 
      "country" : "Antigua & Barbuda", 
      "email" : "[email protected]", 
      "photoURL" : "", 
      "uid" : "7E4vEew5RbMsWmSMijZxT4TzxHh1", 
      "username" : "dani Kemper" 
     } 
    } 
} 

回答

0

你正在閱讀的數據庫/posts/7E4vEew5RbMsWmSMijZxT4TzxHh1眼下。這不是用戶的帖子所在的位置,因此您的完成處理程序將通過不帶數據的快照進行調用。因爲你然後嘗試從它讀取數據,代碼失敗。

您需要與檢查每個崗位的uid屬性查詢,以從數據庫中讀取數據:

let postsRef = dataBaseRef.child("posts/\(Auth.auth().currentUser!.uid)") 
let userQuery = postsRef.queryOrder(byChild: "uid").queryEqual(toValue: Auth.auth().currentUser!.uid) 
userQuery.observe(.childAdded, with: { (snapshot) in 
    print(snapshot.childSnapshot(forPath: "Game").value as? String) 
    print(snapshot.childSnapshot(forPath: "Console").value as? String) 
}) { (error) in 
    print(error.localizedDescription) 
} 

我建議在working with lists of data讀了。花幾個小時閱讀和學習這些代碼示例,將節省大量時間和問題。

+0

有一個錯誤:無法在線上調用非函數類型'NSEnumerator'的值:print(snapshot.children(「Game」)。value as?String) – Danjhi

+0

您可以幫忙嗎? – Danjhi

+0

@Danjhi它在回答'snapshot.child(「遊戲」)'說,不'.children' – Callam

相關問題