私が適切なインデックスを設定していないため、以下に示す現在のクエリは効率的ではありません。 Xcodeのコンソールに、Consider adding ".indexOn": "users/kxSWLGDxpYgNQNFd3Q5WdoC9XFk2" at /conversations
という提案があります。私はそれを試して、それは動作します。複雑なDB構造を持つFirebase .indexOn
しかし、users/
の後にユーザーIDを動的にする必要があります。私は、同様のことを試した後の別の記事へのリンクを追加しましたが、私はそれを得ることができません。すべての助けが大いに評価されるだろう!
注:上記のコンソール出力ユーザIDは、下記のスクリーンショットと一致しませんが、私が思うような問題を解決するためには問題ありません。私が間違っているなら私を訂正してください。ありがとう!ここで
はFirebaseの私のDBの構造である:
{
"conversationsMessagesID" : "-KS3Y9dMLXfs3FE4nlm7",
"date" : "2016-10-19 15:45:32 PDT",
"dateAsDouble" : 4.6601793282986E8,
"displayNames" : [ “Tester 1”, “Tester 2” ],
"hideForUsers" : [ "SjZLsTGckoc7ZsyGV3mmwc022J93" ],
"readByUsers" : [ "mcOK5wVZoZYlFZZICXWYr3H81az2", "SjZLsTGckoc7ZsyGV3mmwc022J93" ],
"users" : {
"SjZLsTGckoc7ZsyGV3mmwc022J93" : true,
"mcOK5wVZoZYlFZZICXWYr3H81az2" : true
}
}
とスウィフトクエリ:他のポストへ
FIRDatabase.database().reference().child("conversations")
.queryOrderedByChild("users/\(AppState.sharedInstance.uid!)").queryEqualToValue(true)
リンク: How to write .indexOn for dynamic keys in firebase?
あなたの質問にJSONツリーの画像が含まれています。 Firebaseデータベースコンソールの[エクスポート]ボタンをクリックすると、実際のJSONをテキストとして置き換えてください。 JSONをテキストとして検索可能にすることで、実際のデータを使ってテストしたり、答えに使用したりすることができます。一般的には、これは良いことです。 –
完了! @FrankvanPuffelen – justColbs
あなたはそれをどのように編集したか分かります。そのようにする方法を正確には知らなかった。本当にありがとう! – justColbs