2017-01-07 17 views
2

Firebaseデータベースのデータをコレクションビューに取り込もうとしています。UICollectionViewをFirebaseに埋め込む

fatal error: unexpectedly found nil while unwrapping an Optional value 

をし、コンパイラは次のコードをハイライト::私は次のエラーを取得しています

ref = FIRDatabase.database().reference(withPath: "Profiles") 

handle = ref.queryOrdered(byChild: title!).observe(.value, with: { snapshot in 

    var items: [Profiles] = [] 

    if snapshot.value is NSNull { 

     print("NIL!!") 

    } else { 
     for item in snapshot.children { 

      let profile = Profiles(snapshot: item as! FIRDataSnapshot) 

       items.append(profile) 
      } 

      self.profiles = items 
      self.collectionView?.reloadData() 
     } 
    }) { (error) in 
     print(error.localizedDescription) 
    } 

handle = ref.queryOrdered(byChild: title!).observe(.value, with: { snapshot in 

私は私のviewDidLoad関数の次の呼び出しを作ってるんです私は問題が何であるか理解していない、それを修正する方法を理解していないのですか?

+0

あなたの 'title'はおそらく' nil'値を持っており、あなたがそれを強制的にアンラップしているのでエラーを投げてしまいます。クエリ文の前に 'print(title)'を付けて、それにnil以外の値があるかどうかを確認してください。 – ThunderStruct

+0

@ThunderStruct titleはfirebaseデータベース内の値を持つjsonのペアです。 – Learn2Code

答えて

0

UIViewControllertitleメンバーとクエリを使用しているFirebaseの子供が混乱しているようです。あなたのデータ構造にtitleという名前の子供を持っており、それに基づいてクエリを実行したい場合は、単にこれであなたのクエリステートメントを置き換える:あなたはあなたが取得しているエラーを取得したい

ref.queryOrdered(byChild: "title").observe(.value, with: { snapshot in 
    // your code 
}) 

唯一の方法は次の場合ですあなたが使用している変数(title)にはゼロがあります。

関連する問題