Android 复制节点
在我的聊天应用程序中,我有Android 复制节点,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,在我的聊天应用程序中,我有用户和消息 数据库结构: 每条消息由一条消息和名为senderUid的发送者的用户ID组成。如果我想显示一条消息以及发送者的图像(imageUri),那么使用senderUid查询users节点是否最有效?或者我可以在每条消息下添加imageUri,这样我只需要查询message节点吗?您可以将图像uri保存在message节点中,而无需进行另一次查询。这将降低时间复杂度,并为会话页面中的每条消息减少另一个循环 您可以将图像uri保存在消息节点中,而无需进行其他查询。
用户
和消息
数据库结构:
每条消息由一条
消息
和名为senderUid
的发送者的用户ID组成。如果我想显示一条消息以及发送者的图像(imageUri
),那么使用senderUid
查询users
节点是否最有效?或者我可以在每条消息下添加imageUri
,这样我只需要查询message
节点吗?您可以将图像uri保存在message节点中,而无需进行另一次查询。这将降低时间复杂度,并为会话页面中的每条消息减少另一个循环 您可以将图像uri保存在消息节点中,而无需进行其他查询。这将降低时间复杂度,并为会话页面中的每条消息减少另一个循环
如果我想显示一条消息以及发送者的图像(imageUri),那么使用senderUid查询用户节点是否最有效
如果要使用实际的数据库结构显示发件人的邮件及其图像,则需要查询两次。第一次需要查询以从消息对象获取uid,第二次需要基于uid
中的users
节点来查询图像url。这意味着一个嵌套查询,但在Firebase中不会有问题
或者我可以在每条消息下添加imageUri,这样我只需要查询消息节点
与添加发件人的uid
的方式相同,您也可以添加图像url。在这种情况下,您将减少执行的查询数量,但会增加消息对象的大小。同样,在Firebase的情况下,这不会是一个问题。因此,我建议您继续使用此解决方案
但是,如果你考虑在某个时间点尝试使用,在这里你可以找到一个关于如何创建一个完整的和功能性的教程。
如果我想显示一条消息以及发送者的图像(imageUri),那么使用senderUid查询用户节点是否最有效 如果要使用实际的数据库结构显示发件人的邮件及其图像,则需要查询两次。第一次需要查询以从消息对象获取uid,第二次需要基于uid
中的users
节点来查询图像url。这意味着一个嵌套查询,但在Firebase中不会有问题
或者我可以在每条消息下添加imageUri,这样我只需要查询消息节点
与添加发件人的uid
的方式相同,您也可以添加图像url。在这种情况下,您将减少执行的查询数量,但会增加消息对象的大小。同样,在Firebase的情况下,这不会是一个问题。因此,我建议您继续使用此解决方案
但是,如果你考虑在某个时间点尝试使用,在这里你可以找到一个关于如何创建一个完整的和功能性的教程。