1

ユーザに属するすべてのエントリを取得しようとしましたが、そのuidとエントリのuid属性を比較しました。Swift Firebaseクエリは、uidをフィルタリングするときにnullを返します

現在、私は、このデータ構造を持っている

Snap (Entry) <null> 

を返し

ref = FIRDatabase.database().reference() 
self.ref?.child("Entry").queryOrdered(byChild: "uid").queryEqual(toValue: uid).observeSingleEvent(of: .value, with: { [weak self] (snapshot) -> Void in 
     guard let strongSelf = self else { return } 
     print(snapshot) 

  • エントリ

    • KgZkrnjFYXG9zKzfgh5
      • 日: "2017年3月31日"
      • テキスト: "テスト123"
      • UID: "vKSJm500zCQmy2TTFUgv8FepknF2"
      • 語数: "6"
  • ユーザー

    • vKSJm500zCQmy2TTFUgv8FepknF2
      • メール: "[email protected]"
      • プロバイダ:これらの規則に従い、 "電子メール"

"Users": { 
    "$uid": { 
    ".write": "!data.exists() || auth.uid === $uid", 
    ".read": "auth !== null" 
    } 
}, 

"Entry":{ 
    ".read" : "auth != null", 
    ".write" : "auth != null", 
    ".indexOn" : "uid" 
} 

イム少し混乱し、私がしようとするため、クエリ自体を印刷するには

let query = self.ref?.child("Entry").queryOrdered(byChild: "uid").queryEqual(toValue: uid) 
    print("/n") 
    print(query) 

Optional((/Entry { 
ep = "Optional(\"vKSJm500zCQmy2TTFUgv8FepknF2\")"; 
i = uid; 
sp = "Optional(\"vKSJm500zCQmy2TTFUgv8FepknF2\")"; 
})) 

私はそれが何を意味するのか分かりません。私はuidで注文する前にautoIDsを調べるようにクエリを変更する必要がありますか?

答えて

0

問題はFirebaseクエリではなく、UIDをどのように格納したのかという問題でした。私は私のデータベースを介してquery'dとき 、私は

Optional(\"vKSJm500zCQmy2TTFUgv8FepknF2\") 

代わりの

vKSJm500zCQmy2TTFUgv8FepknF2 

それを修正し、オプションの値のクイックチェンジを使用していました。

関連する問題