android - 复制节点
问题描述
在我的聊天应用程序中,我有users
和message
.
数据库结构:
每条消息都包含 amessage
和发送者的用户 ID,称为senderUid
。如果我想显示一条消息以及发送者的图像 ( imageUri
),那么users
使用 查询节点是否最有效senderUid
?或者我可以imageUri
在每条消息下添加,这样我只需要查询message
节点吗?
解决方案
如果我想显示一条消息以及发送者的图像 (imageUri),那么使用 senderUid 查询用户节点是否最有效?
如果要显示发件人的消息和他的图像,使用您的实际数据库结构,您需要查询两次。第一次您需要查询以从消息对象中获取 uid,第二次您应该查询users
基于 , 的节点uid
以获取图像 url。这意味着嵌套查询,但在 Firebase 的情况下不会成为问题。
或者我可以在每条消息下添加 imageUri,这样我只需要查询消息节点吗?
以与添加uid
发件人相同的方式,您还可以添加图像 url。在这种情况下,您将减少执行的查询数量,但会增加消息对象的大小。同样,这对于 Firebase 来说不是问题。因此,我建议您继续使用此解决方案。
但是,如果您考虑在某个时间点尝试使用Cloud Firestore,您可以在此处找到有关如何创建完整且功能齐全的Firestore 聊天应用程序的教程。
推荐阅读
- graphql - GraphQL 模式 - 是否可以在自定义类型字段上设置约束
- scala - 简单的 TableAPI SQL 查询不适用于 Flink 1.10 和 Blink
- javascript - 使用 JQuery 从表中获取选定的值
- javascript - 请解释为什么此代码在检查反应中表单输入中的文本小于特定(len)时对(val)取反?
- security - 受保护的 Android SharedPreferences 错误:“原因:java.lang.RuntimeException:字段 keySize_ for ...”
- html - 如果只有一个元素位于另一个元素旁边,则应用 css 规则
- javascript - 计数器:点击,数字应该增加一
- php - mongodb 版本中的 ISODate 格式
- css - 在 ie11 的 flex 容器上显示 :before 元素
- mongodb - MongoDB Atlas 集群身份验证失败