2017-04-23 3 views
0
Pictures 
-pictureID 
-- name 
-- date 

Like 
-pictureID 
-- userID: true 
-- userID: true 

likePerUser 
-userID 
--pictureID: true 
--pictureID: true 

Users 
-userID 
-- name 
-- lastname 

現在のユーザーが好きなすべての画像を取得したいと思います。Firebase iOS他のノードからのデータでお気に入りのリストを取得する

私でした:それはfirstIdは毎回、 を正しい値を持っていると思われる場合は

  ref.child("likePerUser").child(FIRAuth.auth()!.currentUser!.uid).observeSingleEvent(of: .value, with: { (snap) in 

     for item1 in snap.children{ 

     let firstItem1 = (snap: item1 as! FIRDataSnapshot) 
      print("key favourites\(firstItem1.key)") 

      let firstId = firstItem1.key 


    self.ref.child("pictures").child(firstId).observeSingleEvent(of: .value, with: { (snapshot) in 



    for item in snapshot.children{ 

     let firstItem = (snapshot: item as! FIRDataSnapshot) 
     print("key pictures \(firstItem.key)") 
       let dict = firstItem.value as! [String: Any 
        let name = dict["name"] as! String 
print(name) 

    } 

でも、私は常にエラーを取得:

Could not cast value of type '__NSCFBoolean' (0x110dae5b8) to 'NSDictionary' (0x110daf288).

が助けてくださいを....

+0

助けを求めている場合は、コードを修正し、エラーの発生場所を教えてください。私はあなたが私を示唆したものを印刷する場合の答えのための – SahandTheGreat

答えて

0
let dict = firstItem.value as! [String: Any 

ここでは、値を辞書としてキャストしようとしています。値が共有しているデータベースのモデルに基づく辞書であるかどうかは不明です。しかし、firstItem.value.debugDescriptionを印刷すると、その値が辞書オブジェクトではないことがわかります。

+0

のthnxは、私が手: オプションの私は、それは辞書ではありません参照が、どのように私は場合は、それらの値にアクセスすることができますので、気に入ったすべての画像のための(名前) オプション(日) を私は辞書を繰り返すことはできませんか? – HaVaNa7

+0

データベースのより完全なモデルを表示するために質問を更新した場合は、助けになります。たとえば、データベースのモデルには「favperuser」という子が表示されませんが、コード内で使用します。いずれにしても、コードの大文字と小文字をチェックして、データベース内のパス名と完全に一致することを確認してください。 –

+0

修正済み、thnx – HaVaNa7

関連する問題