firebase - 如何使用结构表示Cloud Firestore中的分层数据?

标签 firebase go google-cloud-firestore

我正在查看how hierarchical data works in Cloud Firestore,并想知道如何最好地将其转换为Go结构。
在链接的示例中,有一个聊天室集合,每个聊天室文档都有两个字段:名称和消息集合。
考虑到消息集合中的写入和读取操作相当频繁,以下是使用go结构表示聊天室的好方法吗?我还想在Go代码中访问集合中的消息。

type ChatRoom struct {
    Name     string
    Messages *firestore.CollectionRef
} 
这个定义似乎可以编译并且可以正常工作,但是我想知道是否有更好或更惯用的方式来解决这个问题。

最佳答案

这些文档没有提到文档中支持的CollectionRef。因此,我不确定这是否行得通。您可以看到我指的是here
另一方面,我不认为您会从中真正受益,因为您可以通过执行以下操作来访问集合。

client.Collection("chatroom/" + <NAME> + "/messages")
另外,我认为将像ChatRoom这样的高级类型纠缠到Firestore实现中也不是好习惯。因此,我将其删除并创建一个界面,该界面隐藏了如何存储ChatRooms和消息的详细信息。你可以做这样的事情。
type Repo interface {
    GetChatRoom(name string) (ChatRoom, error)
    GetMessages(name string) ([]Messages, error)
}

关于firebase - 如何使用结构表示Cloud Firestore中的分层数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63293565/

相关文章:

linux - Go:在 exec.Command 中使用字符串时出现奇怪的结果

git - 通过代理进行go-git克隆

javascript - 使用 React JS 在 Firebase v9 中创建文档时保存文档 ID

android - Flutter:如何在整个应用程序中设置观察者

firebase - 必须向文本小部件提供非空字符串。 'package:flutter/src/widgets/text.dart' : Failed assertion: line 370 pos 10: 'data != null'

java - firebase检索值不正确

javascript - 如何在 Firebase 上托管的 React 元素中提供 Assets 路径?

android - 编译到Android : invalid signature of pthread_key_create

Android 使用 Firebase 冷启动缓慢

swift - 从 Firebase 检索数据不起作用