问题标签 [google-cloud-firestore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
8000 浏览

firebase - 公共和私有字段的 Firestore 安全规则

对于 Firebase 实时数据库的安全规则,公共数据和私有数据可以使用如下规则存在于同一棵树中。

但是,在使用 Firestore 时,我们似乎无法做到这一点,因为我们可以检索的数据只是在 collection 或 document 下。当公共数据和私有数据在同一个文档中定义并使用集合/文档获取数据时,如果我们不是所有者,我们会收到私有数据权限不足的错误。

使用 RTDB 时,我们可以获取 'users/{userId}/publicInfo' 的数据,因为我们对集合/文档一无所知。

有什么办法可以用 Firestore 做到这一点?否则,我们应该分别进行公共/私人收藏吗?

0 投票
1 回答
3687 浏览

database - Cloud Firestore 事务的限制

我已阅读有关Firestore 上的事务更新操作的文档。根据配额和限制,关于交易只有两个限制:

  • 事务的最大大小:10 MiB
  • 交易时间限制:270秒,空闲过期时间60秒

没有明确提到与事务相关的限制,在事务期间可以读取和/或修改多少文档或集合,或者是否对发生事务更新的集合有任何额外的限制。

  1. 这是否意味着,只要更新保持在这些和其他一般限制范围内,客户端可以对多达 500 个文档进行事务更新,每个文档都位于不同的集合中?

  2. 如果客户端在事务中读取多个文档,但只更新其中一个 - Firestore 是否仍然(静默)写入未修改的文档(用于序列化等)......所以我必须考虑每次写入 1 次的写入限制即使对于没有被客户端明确修改的文档,每秒的文档数也是如此。

PS:我问的原因是 Datastore 在事务中限制为 25 个实体组,并且在许多写入事务中也看到只读实体(“文档”)中的热点。例如,请参阅Dan McGrath 的这个答案。我只是想知道 Datastore 的哪些特征会延续到 Firestore,并且在设计 Firestore 数据库时必须考虑。

0 投票
1 回答
210 浏览

google-app-engine - GAE 中的 Cloud Python 库是否使用缓存或内存缓存来访问 Cloud Firestore 数据?

设置:Python 标准环境上的 Google App Engine 应用程序。

目前,该应用程序使用 NDB 库从其数据存储区读取/写入。它使用异步小任务从 Datastore 和 memcache 进行并行、异步读取。

如果我想使用 Firestore 作为 Datastore 的替代品,我似乎必须使用 Google Cloud Client Library for Python。我相信 google-cloud lib 不支持像 tasklet 这样的机制。但我想知道:lib 是否使用线程安全缓存机制来请求 Firestore API,甚至可能是 GAE 的内存缓存?

0 投票
2 回答
801 浏览

firebase - 新的 Firebase Firestore DocumentDb 如何为大型子集合建模

在 firebase 实时数据库中,您通常会将大型子集合移出到它自己的单独集合中。例如,如果用户可能有大量关注者,则数据模型可能会在用户对象中保留关注者数组,但将关注者移出到单独的集合中。

用户

  • 用户身份
    • 用户名
    • 下列的: []
      • 用户身份
      • 用户名

追随者

  • 用户身份
    • 追随者用户ID

您是否必须使用新的 Cloud Firestore 进行相同类型的建模,或者您是否可以在查询中使用投影,这样您就不会在每次扫描时返回大型子集合。听起来子集合存储在他们自己的完整集合中,所以这可能会提高存储子集合的效率?

0 投票
1 回答
147 浏览

android - google firestore - 获取 DuplicateFileException

请给我建议。我刚刚遵循了本指南,从这条线上compile 'com.google.cloud:google-cloud-firestore:0.25.0-beta' 没有任何效果。

错误:任务':app:transformResourcesWithMergeJavaResForDebug'的执行失败。com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException:在 APK project.properties 中复制的文件重复

文件 1:C:\some.gradle\caches\modules-2\files-2.1\com.google.cloud\google-cloud-core\1.7.0\453cc89cde3f2896825aecfb4d05dc2ba06f9775\google-cloud-core-1.7.0.jar

File2: C:\some.gradle\caches\modules-2\files-2.1\com.google.cloud\google-cloud-firestore\0.25.0-beta\7258a705784332ebc9be97f28be93b3e6548073f\google-cloud-firestore-0.25.0-beta 。罐

google-cloud-core但我的文件中没有导入gradle。这是来自的输出gradle

0 投票
23 回答
296638 浏览

android - firestore:PERMISSION_DENIED:权限缺失或不足

我收到错误

gettingdocuments.com.google.firebase.firestore.FirebaseFirestoreException:PERMISSION_DENIED:缺少权限或权限不足。

对于 else 语句中的以下代码

0 投票
1 回答
717 浏览

javascript - 使用 firestore 创建安全的类似 REST 的 API

我想在 firebase firestore存储一对多的关系。假设我有一个作者,并且有属于这个作者的书。我可以将它存储在嵌套关系中:

但是我还需要一种列出所有书籍的方法,最好不要遍历每个作者(afaik 需要实时数据库),所以我想我应该这样做

但出于安全和性能原因,我宁愿不在前端进行过滤。我发现可以编写查询:

这有望消除性能问题,但它并不安全,因为可以从客户端获取其他作者的书籍。另外,我宁愿将关系存储在作者文档中,而不是相反。

例如,在带有 Django Rest Framework 的 restful API 上,我将查询集限制为仅返回属于给定用户的书籍。IIUC 可以使用IAM,但基于示例我不太确定如何。

再说一次,我只想退回这本书,前提是它的 id 列在作者的 books 属性中。一本书理论上可以属于多个作者。

我想这是重复的,很多人都有这个问题,但我找不到这个特定用例的明确答案。

0 投票
8 回答
4960 浏览

firebase - Cloud FireStore 最低部署目标

尝试使用 Cloud FireStore 启用应用时出现以下错误:

我将 podfile 要求更改为 10.2,我的 xcode 部署更改为 10.2,但我仍然收到此错误。有什么建议么?

编辑:

我的解决方案:我做了

按照这个顺序,它起作用了。

0 投票
2 回答
798 浏览

angular - Firebase Cloud Firestore 中的更新对象使用 Angular 4

嗨,我正在使用 firebase 和 angular 4 这个新东西是 firestore,我尝试更新其中一个文档,但出现此错误。

在此处输入图像描述

这是我的组件

在此处输入图像描述

如果我删除接口,我的意思是如果我这样做,noteDoc: AngularFirestoreDocument; 而不是noteDoc:AngularFirestoreDocument; 错误消失了,但我更喜欢使用界面有人可以帮助我,谢谢

0 投票
2 回答
3582 浏览

angular - angular + firestore:如何允许对文档的公共读取访问

我是一名学生开发人员,在我的 Angular 应用程序中试用了新的 Firestore,但遇到了安全规则。

我想要实现的目标:

使用模板绑定在角度视图中显示 Firestore 文档。未经身份验证的用户应该可以查看该文档。

问题:

如果未经身份验证的用户尝试查看该页面,则会发生权限错误:

ERROR 错误:权限缺失或不足。在新的 FirestoreError (error.js:164)

模板文件:

component.ts 文件:

火场规则: