你如何与Firestore进行廉价的连接?
在Firebase中,我会.map()响应并根据存储在每个项目上的外键获取其他数据.但是,考虑到每个读取支付的Firestore的定价模型,这似乎太昂贵了.你怎么看?
在我的情况下,我的关系是针对少数几个类别(约5 - 7)的许多行为.每个动作属于一个类别.
这种情况的最佳做法是什么?我应该像Firebase一样继续这样做吗?或者我应该独立获取两个集合并在Javascript中加入它们?
的Jakub
PS你如何实际使用参考数据类型?遗憾的是,文档中未对此进行描述.
假设我收集了一些评论.每个评论对象都有一个"doc ref"给发布的用户.我需要一个查询,它将返回一个注释列表,包括每个用户引用的值,所以我的查询返回一个很好的格式化的Json注释对象.
我有一个名为'categories'的集合,其中包含ID为5gF5FqRPvdroRF8isOwd的单个文档.
我有另一个名为'门票'的系列.每个故障单都有一个引用字段,用于将故障单分配给特定类别.
票证集合中的字段称为"类别",字段类型为reference.
在下面的代码中,categoryDocId是我要查询的类别的文档ID.
const categoryDocID = `5gF5FqRPvdroRF8isOwd`;
const files = await firebase
.firestore()
.collection('tickets')
.where('category', '==', categoryDocID)
.get();
Run Code Online (Sandbox Code Playgroud)
为什么files.length返回0?
为了进行测试,我将category字段类型更改为字符串,并将其设置为类别ID而不是直接引用.这正确地返回了分配给该类别的票证,这使我相信它是关于我如何查询reference字段的.
我正在使用Firebase Cloud Firestore,我希望当我获得一个内部包含引用字段的文档时,将引用字段作为文档接收,而不是作为对文档的引用...
我有一个用户集合和类集合(在学校),每个类都包含对用户(该类中的学生)的引用列表。当我使用document.get()(通过引用获取类)时,它返回一个包含DocumentReference(用户)列表的对象,因此我需要再调用document.get()大约 20 次才能将用户作为对象而不是作为对他们的引用。
我希望能够调用document.get()一次,它会将所有引用作为文档带给我,例如:
数据库和代码
有没有一种优雅的方法来做到这一点?
{
"breviario": {
"metaLiturgia": {
"fecha" : "Martes 5 de febrero del 2019",
"tiempo" : "PROPIO DE LOS SANTOS",
"semana" : "",
"mensaje": "",
"salterio": "",
"color":0,
"meta": ""
},
"santo": {
"nombre": "Santa Águeda, virgen y mártir",
"vida": "Padeció el martirio en Catania (Sicilia), probablemente en la persecución de Decio. Desde la antigüedad su culto se extendió por toda la Iglesia y su nombre fue introducido en el Canon romano."
},
"oficio": {
"himno": {
"texto": "Testigos de …Run Code Online (Sandbox Code Playgroud) 当我获取了我们可以在下面的屏幕截图中看到的地方时,我需要获取他们的数据,但它是对数据的引用,我可以在没有额外请求的情况下获取数据,例如place.ref.data()?如果我有 30 个位置,我应该提出 30 个请求,真的吗?我使用 react native 并且 ref 对象的类型为 DocumentReference https://rnfirebase.io/docs/v3.1.x/firestore/reference/DocumentReference
我目前正在手动遍历 firestore 中的文档字段,并将它们放入一个对象中,然后将其字符串化为 JSON。
有没有办法自动化这个过程?就像是:
var userEnrollments = ToJson(await admin.firestore().collection(USERS + "/" + x.uid + "/" + ENROLMENT));
Run Code Online (Sandbox Code Playgroud) Firebase Firestore reference在定义文档字段时具有一种类型,该类型允许我们通过其“文档路径”添加对另一个文档的引用。
例如,我有文档animals/3OYc0QTbGOTRkhXeiW0t,其中一个字段name具有value Zebra。我在animals文档数组中引用它zoo/xmo5wX0MLUEbfFJHvKq6。我基本上是通过将动物引到animals馆藏中相应的动物文献中来存储动物园中的动物清单。
现在,如果我从zoo集合中查询特定文档,对动物的引用会自动解析吗?我可以在查询结果中获得动物名称吗?如果没有,我该如何实现?
我有一些文章。
每篇文章都有一个参考字段,指向撰写该特定文章的作者的个人资料文件。
经过身份验证的用户(使用Firebase的Auth)将与这些配置文件相关联。
仅当该用户拥有该文章时,如何使这些文章可被当前登录用户编辑?
在Firestore的文档中,有一个重复的示例:
service cloud.firestore {
match /databases/{database}/documents {
// Allows you to edit the current user document (like a user's profile).
match /users/{userId} {
allow read, write: if request.auth.uid == userId;
}
// Allows you to read/write messages as long as you're logged in (doesn't matter who you're logged in as, so theoretically you could change other peoples' messages ).
match /rooms/{roomId} {
match /messages/{messageId} {
allow read, write: if request.auth != null; …Run Code Online (Sandbox Code Playgroud) firebase firebase-security firebase-authentication google-cloud-firestore