gpt4 book ai didi

android - 在 Firebase 模型中保存推送的 ID

转载 作者:太空狗 更新时间:2023-10-29 13:05:51 26 4
gpt4 key购买 nike

我在这里有 2 个 firebase 问题:

A/在解析值时,以编程方式将 ID 复制到本地模型(从数据库中排除)是否是一种好的做法?

B/另一种解决方案是:

  • 生成新 key
  • 使用该键并将其复制到模型中
  • 将模型(和 key )保存到数据库
val newPostRef = ref.child("posts").push()val key = newPostRef.keynewPostRef.setValue(Post(key, "title", "content"))

像这样,帖子 ID 将由数据库模型保存并使用 getValue(Post::class) 自动解析。

我觉得这不是一个好的解决方案,但请告诉我原因:)

问候

最佳答案

两种方案都保证了数据的一致性,但在数据库大小方面,方案A优于方案B。

通过使用解决方案 B,您的数据库结构将如下所示:

"posts":{
"nTY5U5NJJbPTJaPksPRNqau15H53" : {
"message" : "Hello World",
"sender" : "Rosário Pereira Fernandes",
"key" : "nTY5U5NJJbPTJaPksPRNqau15H53"
}
}

这应该使用大约 180 字节 的磁盘空间。请注意,此 key 在您的节点上重复了两次。为什么不删除它以节省空间?

使用解决方案 B,您将拥有一个较小的数据库:

"posts":{
"nTY5U5NJJbPTJaPksPRNqau15H53" : {
"message" : "Hello World",
"sender" : "Rosário Pereira Fernandes"
}
}

这将使用大约 135 个字节。这比解决方案 B 少 45 个字节。现在想象一下,如果您的数据库中有 1000 个帖子。在解决方案 B 中,您将使用更多的 45000 字节。这足以存储大约 300 多个帖子,但它被额外的键属性占用了。

不要忘记 Firebase Database has some price limitations存储 GB 和下载 GB。通过使用解决方案 B,您将比使用解决方案 A 更快地达到此限制。

关于android - 在 Firebase 模型中保存推送的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48184670/

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