gpt4 book ai didi

java - 如何构建与 firebase 的聊天

转载 作者:太空宇宙 更新时间:2023-11-03 12:03:00 24 4
gpt4 key购买 nike

我正在使用 Cloud Firestore (NoSQL) 来存储以下用户的个人资料信息:

{
"uid": "abc123",
"name": "...",
"friends": [
"uid": "x234",
]
...
}

现在我想知道如何构建用户之间的直接聊天。我正在考虑:

为每个用户文档添加一个附加字段,例如:

"chats": [
{
"from": "name",
"message": "...",
...
},
...
]

或者不使用 Firestore 进行聊天,我考虑使用具有类似结构的 Firebase 实时数据库。

最后一种方法的好处是,用户文档不会因大量聊天协议(protocol)而变得“臃肿”。

我需要一些结构/实现最适合这个用例的建议。

最佳答案

当您开始构建应用程序时,首先需要考虑最适合它的数据库。如果您考虑 Firestore,您需要知道 Cloud Firestore 的定价模型适用于每个客户端每秒执行大量小型读取和写入的应用程序,这可能比实时数据库中具有类似性能的应用程序贵得多。

这两个数据库之间也存在一些差异。如果你想继续使用 Firebase 实时数据库,你需要知道你不能查询多个属性,它通常涉及重复数据或客户端过滤,这在某些情况下是某种困惑。实时数据库不会自动扩展,而 Firestore 会。

关于如何为聊天应用程序构建数据库,您需要知道没有完美的结构可以做到这一点。您需要以一种允许您非常轻松且非常有效地读取/写入数据的方式构建数据库。火力地堡 official documentation解释了如何为聊天应用构建数据库。如果你想要更复杂的东西,请阅读这篇文章,Structuring your Firebase Data correctly for a Complex App .

为了更好地理解,我建议您也参加 Firebase 免费类(class),Firebase in a Weekend: Android .

所以由您来决定哪一个更适合您。

P.S:如果你有兴趣,我也在我的tutorials中解释过 如何使用 Cloud Firestore 和 Kotlin 创建聊天应用。

关于java - 如何构建与 firebase 的聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47371561/

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