gpt4 book ai didi

Java,火力地堡 : How to search values of an unknown parent

转载 作者:行者123 更新时间:2023-11-29 04:27:13 25 4
gpt4 key购买 nike

我在 firebase 中有一个数据库,看起来像这样:

-Messages
-randomGenKey
-receiverUid:string1
-senderUid:string2

我正在尝试搜索 string1 和 string2 是否为特定值,让我们分别说“user1”和“user2”。我不确定如何才能做到这一点。我知道我可以通过简单地做mMessagesRef = FirebaseDatabase.getInstance().getReference().child("消息");但是在那之后卡住了,因为当我搜索时 randomGenKey 是未知的。

最佳答案

正如@creativecreatorormaybenot 所说,您可以通过查询过滤senderUidreceiverUid。但是 Firebase 数据库查询只能过滤一个属性,因此您不能使用它来过滤两个属性。您可以将这两个值组合成一个属性并对其进行过滤。有关此方法和其他过滤方法的更多信息,请在此处查看我的回答:http://stackoverflow.com/questions/26700924/query-based-on-multiple-where-clauses-in-firebase

但由于您似乎正在创建消息传递应用程序,因此我还会考虑另一种数据结构。如果您的用户正在进行一对一的对话,我建议您查看一种数据结构,该结构将每个对话建模为树中的一个节点。因此,与其在您的应用程序的所有用户之间设置一长串消息(非常像 SQL 模型),不如将其建模为多个(小得多的)对话:

-Messages
-keyOfRoomOne
-message1
-message2
-keyOfRoom2
-message1
-message2

然后还为每个用户保留所有房间的列表:

-Users
-Uid1
-keyOfRoomOne
-keyOfRoomTwo
-Uid2
-keyOfRoomOne
-Uid3
-keyOfRoomTwo

使用这种结构,您可以在聊天开始时查找房间 ID,这比每条消息查找的频率要低得多。

或者,您可以使用反射(reflect)其中用户的房间名称,甚至不需要查找。有关更多信息,请参阅 http://stackoverflow.com/questions/33540479/best-way-to-manage-chat-channels-in-firebase

关于Java,火力地堡 : How to search values of an unknown parent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45660631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com