特定のユーザーから別のユーザーにメッセージを送信したいと考えています。私はこれを達成することができません。私は次のコードを使用すると、私は受信者からメッセージを取得します。私が必要とするのは、特にメッセージrecieverid
をsenderid
にすることです。特定のユーザーのメッセージをFirebaseの別のユーザーに取得する方法
私のデータベース・スナップショット
ここに私のコードです:
Database.database().reference().child("chats")
.queryOrdered(byChild: "receiverid")
.queryEqual(toValue: "xEdACTcUWeOwrdIqjxeP5t5y4Kg2")
.observe(.childAdded, with: { snapshot in
let msgDict = snapshot.value as! [String: Any]
print(msgDict)
})
Firebaseデータベースクエリは、1つのプロパティでのみ注文/フィルタリングできます。 2つのプロパティをフィルタリングしようとしていますが、これは不可能です。しかし、2つの値を1つのプロパティに結合し、それをフィルタリングすることができます。実際には、データ構造を変更してチャットルームをデータベースのレイヤーとしてモデル化し、連結されたユーザーIDをこのルームの名前として使用することをお勧めします。この例については、http://stackoverflow.com/questions/33540479/best-way-to-manage-chat-channels-in-firebase –
を参照してください。特定の送信者から特定の受信機ですか?送信者の場合は送信したメッセージを照会することができ、受信者の場合は、自分宛のメッセージを照会することができます。これは、ある人から別の人に送信されたメッセージを照会する管理者の事ですか?ユースケースは何ですか? – Jay