Google cloud firestore 集合的Firestore方法snapshotChanges()

以下是中提供的代码 导出类AppComponent{ 私人衬衫系列:AngularFirestoreCollection; 衬衫:可见; 构造函数(专用只读afs:AngularFirestore){ this.shirtCollection=afs.collection(“衬衫”); //.snapshotChanges()返回DocumentChangeAction[],其中包含 //关于每次更改“发生了什么”的大量信息。如果你想 //使用map操作符获取数据和id。 this.shirts

Google cloud firestore 数据存储模式下的新谷歌云Firestore

我很难理解在新的GoogleFireStore数据存储模式下查询是如何处理事务的(我已经使用了以前版本的数据存储) 根据本文,以下是在数据存储模式下使用Google Cloud Direbase的好处: 最终的一致性,所有云数据存储查询都变得非常一致 交易不再限于25个实体组 对实体组的写入不再限于每秒1次 由于查询现在具有很强的一致性,因此我假设在事务中使用非祖先查询是可以的,但在本文中,则相反: 事务内部的查询必须是祖先查询 经过深思熟虑,我决定试着看看我的怀疑是否正确: query :

Google cloud firestore Firestore(Angularfire)将用户添加为;行政";

我需要有一个选项为用户创建帐户,并给他们的帐户。因此,帐户应该由某个公司的管理员创建,用户将使用该帐户登录,然后他们可以更改密码 我找到了一个解决方案,但如果我理解正确,您需要自己的后端 还有别的办法吗?或者你有其他的建议如何管理这个?基本上,假设用户链接到一家公司。他在那家公司里有一个角色。公司管理员为每个用户选择角色。常用的方法是在可调用的云函数中使用管理员SDK来完成此操作。这很直截了当 如果在创建用户时从前端执行此操作,则管理员用户将注销,新用户将登录 然而,有一种黑客可以在不注销的情况

Google cloud firestore FIrebase规则:如何使用$访问祖先节点';谁的数据?

目标:只有经过身份验证的“所有者”用户才能在“某些集合”中读取/写入其文档 示例查询:/users/peter/some collection/myDoc 用户节点有一个字符串uid字段,这在许多Firebase规则示例中很常见 我已经阅读了所有的文档,它说您可以在路径中放置一个{variable},并使用$引用它,但我无法使用在线数据库规则编辑器“编译”此规则: rules_version = '2'; service cloud.firestore { match /databases/

Google cloud firestore Firestore:我们不能在使用where筛选的字段上使用orderBy吗?

当我尝试使用过滤的字段,其中(字段,数组)时,我遇到了这个错误: FirebaseFirestoreException:无效参数:Order by子句不能包含具有相等筛选器的字段 但没有平等的标志;等式之间有一个OR,比如field=“xx”或field=“yy”或field=“zz” 这使得按字段订购是完全合理的 是否真的不可能在同一字段上使用orderBy with where???,其中(也称为array contains)实际上是一个逻辑OR,由多个检查是否相等的值组成。正如您从(我的)

Google cloud firestore 如果子集合中的文档被修改,事务处理是否会失败? 我们考虑下面的例子: 从'firebase admin'导入{firestore}; const userCollectionRef=firestore().collection('users'); const setUserData=(用户ID,数据)=>{ 返回firestore().runTransaction(异步trx=>{ const userDocRef=userCollectionRef.doc(userId); 返回trx.set(userDocRef,数据); }); }; const doSomethingElse=(用户ID、文档、数据)=>{ 返回userCollectionRef .doc(用户ID) .集合(“子集合”) .doc(doc) .设置(数据); };

如果我调用setUserData(123,someData)并且当此函数正在运行时,doSomethingElse(123,'someDoc',someOtherData)函数被调用-事务是否会因为子集合中的文档被修改而失败 基于这些文档,我假设只有在调用setUserData过程中修改user/123文档时,事务才会失败,但对user/123/subCollection/someDoc文档的修改不会导致事务失败。不过我不确定,因为我对这一点不是很清楚。它只是说: 事务读取在事务外部修改的文档。

Google cloud firestore 将BigQuery与嵌套数据架构同步到Firestore

所以我是BigQuery新手,我正在尝试在BigQuery中实现Firestore集合中的镜像数据。在Firebase控制台中安装了将集合导出到BigQuery扩展,并成功创建了MyTable\u raw\u changelog表和MyTable\u raw\u latest视图,并使用SQL语句相应地查询了数据 问题是整个文档数据在BQ中都是字符串JSON。下面是我在Firestore文档中的示例数据,我在BQ中看到的数据是字符串JSON { "User": {

Google cloud firestore 我可以在Firebase Emulator云函数中保留全局状态吗?

我想在模拟器中运行调用多个云函数的测试,这些函数使用模拟的外部服务getstream.io。这意味着mock必须在函数调用过程中保持不变。这样的事情可能吗 let mock = new SomethingMock(); exports.resetMock = functions.https.onCall((data, context) => { mock = new SomethingMock(); }); exports.addActivity = functions.https

Google cloud firestore Google云Firestore事务和批处理

我们可以在google云函数中的事务中编写批处理来访问存储在cloud firestore中的文档吗?我试过在云函数中使用两个事务。你能把你的问题说得更清楚一点吗,指定编码语言&简要说明你想做什么我看不出有任何限制。你有什么错误吗?你能不能把你的问题说得更清楚一点,指定编码语言&一个关于你想做什么的简要说明?我看不出有任何限制。你有什么错误吗?

Google cloud firestore Firestore-删除文档而不先读取

有没有一种方法可以批量删除集合中的文档,而不必先“读取”文档而收取费用 比如说,我收集了1000份文件。我决定删除所有超过1天的文档。我可以使用查询返回返回[300]个文档(DocumentReference)的QuerySnapshot。我不需要阅读文档内容(DocumentSnapshot),我只需要删除它们 据我从中了解,因为我首先返回了QuerySnapshot,它将收取我300次读取,然后300次删除的费用。它没有描述“读取”文档引用与“读取”文档快照中的数据之间的区别 有没有办法避免

Google cloud firestore Firestore我们可以使用多个数组吗?

我正在使用Firestore和Node JS。 是否仍然可以在同一查询中多次使用ARRAY\u CONTAINS。否,已明确此限制: 您只能在单个服务器上执行范围比较 字段,并且您最多可以在一个 复合查询 谢谢你的回答。我知道这一限制,因为我不能多次使用带有数组包含的WHERE子句,但可以创建类似SQL的东西,如“%QUERY%”。这是一个完全不同的问题,不,也没有子字符串筛选器。

Google cloud firestore 在Firestore中,可以将用户集合中文档的documentID设置为用户';什么是液体?

我正在本机iOS中创建一个数据库支持的应用程序。我看到每次创建用户时,FirebaseAuth都会自动生成一个用户UID属性。可以将此UID用作dbUsers表中用户的documentID吗 我最初的firebase firestore架构将UID作为dbUsers集合的一个字段,但这使得直接获取有关用户的信息变得困难,因为我不再有指针(currentUser!.UID)到数据库中的用户文档,并且必须执行查询并迭代querySnapshot。我想知道是否存在安全风险或其他因素,这将不是一个好主意

Google cloud firestore 通过json预加载云Firestore?

在我的仪表板中的CloudFireStore数据库界面中,我看不到(比如)通过JSON(或类似)将一堆“文档”导入集合的方法。我错过什么了吗?我可以在Go中创建一些边带代码来预加载/刷新数据库。这是预期的方法吗 历史上,我曾使用SQL文件执行此操作-这是我第一次尝试NoSQL…Firebase控制台中没有将JSON导入Firestore的选项 但是可以使用gcloud命令行工具通过Firestore导出和导入数据。有关分步演练,请参阅上的文档 快速搜索也给了我这个。虽然我不确定它是否最新,但如果

Google cloud firestore 如何对数据库中的cloud firestore文档进行排序?

我正在使用作为我的数据库 从数据库中获取我想要的数据到客户端并对其进行排序根本没有问题 如果我想对数据库中的文档进行可视化数字排序我该怎么做 例子: 例如,查看如下所示的数据库: 我想要的是对这些文档进行数字排序,使其看起来像这样(5在Firestore控制台中,文档和集合总是按ID排序。此行为无法更改 这里您唯一的选择是更改ID,以便它们使用字符串的自然排序顺序进行排序。这意味着它们必须使用类似“0001”、“0002”、“0003”等方案进行命名。这可能不值得,除非控制台是您在Firest

Google cloud firestore 如何在SwiftUI中的firebase查询期间显示加载动画

我正在用SwiftUI构建一个应用程序,并且有一个ObserveObject用于查询我的Firestore数据库。我的文档相对较大,经常需要查询很多文档,所以我想在查询下载数据时加入一些加载指示器 这是我创建的ObserveObject的一个示例: import FirebaseFirestore import SwiftUI struct Document: Identifiable, Equatable { var id: String var content: Strin

Google cloud firestore 使用大量读取的Google云部署

我有一个谷歌云功能,大约有24个功能。函数连接到Firebase Firestore(它们在其中的集合/文档中执行读/写操作) 如果我一次部署全部24项功能,我会在谷歌云平台上看到一个巨大的峰值(部署所有功能所需的3分钟内读取量约为5.5k) 有人知道或能解释为什么会这样吗?在此期间,没有其他人在firestore中读/写。请参阅所附的图表截图 这张图表是什么?firestore中的read?或者外部请求流量(读取外部源)?您能否提供更多关于所述功能性质的信息?例如函数的类型,它们是cron作业

Google cloud firestore SwiftUI、Picker和FireStore返回文档ID未下降

我有两个披露小组,每个小组都有一个提货员。第一个选择器只是从一个静态的年数组中读取数据,工作时没有问题。第二个选择器填充选择器用户名,但当您选择用户时,该值是Firebase文档id,而不是fullname值 // MARK: - DISCLOSER GROUP TRIP YEAR DisclosureGroup("Trip Year: \(String(selectedYear))", isExpanded: $tripYearIsExpanded) {

Google cloud firestore 是否可以从web管理控制台禁用写入、更新和删除?

是否可以从web管理控制台禁用写入、更新和删除?(允许只读) 我只想从客户端写入、更新或删除(仅使用代码) 是否可以禁用web管理员的写入、更新和删除 控制台 有了“web管理控制台”,我想您是在谈论 如果要向用户分配只读权限,使其只能查看(但不能修改)现有数据,则可以向该用户分配查看者角色。看 是否可以禁用web管理员的写入、更新和删除 控制台 有了“web管理控制台”,我想您是在谈论 如果要向用户分配只读权限,使其只能查看(但不能修改)现有数据,则可以向该用户分配查看者角色。参见。是的,我是

Google cloud firestore 云函数上下文参数返回未定义

我正在使用云函数监听Firestore上创建的新文档 functions.firestore.document('users/{userId}') .onCreate((snapshot, context) => { console.log('params', context.params.userId); }); 日志显示未定义的而不是通配符参数 这将从2018年12月15日午夜开始 这是否与firestore/cloud功能的更新有关? 我们如

Google cloud firestore 为离线webapp Firestore保存数据

我正在尝试创建一个带有firestore后端的PWA。我不确定是否需要将用户数据保留在indexedDB数据库中,或者firebase将完成这项工作 如果您建议使用indexedDB,请指出在从脱机重新连接后同步数据库的任何现有解决方案。如果您为Cloud Firestore启用脱机数据,它将在后台使用indexedDB来缓存数据。这项功能仍然是官方试验性的,但它确实可以工作,而且比从头开始编写自己的indexedDB缓存要容易得多 详情如下:

Google cloud firestore 哪些字段可用于firestore安全规则以进行身份验证

我正在使用firestore电话号码验证,希望使用包含电话号码的规则。我看到了request.auth.token.email等字段的示例,但找不到其他字段的文档。在控制台中查看“用户”时,标识符列显示电话号码 身份验证令牌中是否有电话号码字段以及如何访问该字段 奖金:安全规则中使用的令牌中存在哪些字段的文档在哪里。电话号码可在request.auth.token.Phone\u number中找到,如文件所述。这是请求.验证.令牌.电话号码。这个问题是询问字段是什么,而不是如何使用字段作为“重

Google cloud firestore 如何获取任何Firestore查询的最后一页?

如何获取任何Firestore查询的最后一页,而不需要发送查询中最后一个文档的游标值 显然,第一个/最后一个值并不总是已知的,除非我手动跟踪这些值。我有按许多不同字段排序的查询,因此必须为每个字段存储第一个/最后一个游标值似乎是很多不必要的工作 毫无限制地获取整个查询结果显然是昂贵且不切实际的。目前没有办法获取最后一个列表。通常的做法是: 颠倒查询顺序 请求结果的第一页 再次在客户端反转结果,以使它们按正确的顺序排列 请注意,尽管有人在谈论(甚至正在做的工作)向Firestore的查询机制添加

Google cloud firestore Firestore emulator-“不允许使用三元运算符。”

我已将firebase工具库和emulator更新为最新版本,但在尝试运行规则时,标题中不断出现错误 完全错误: INVALID_ARGUMENT: Error compiling rules: Use of ternary operator not allowed. 例如,它在以下代码中显示此错误: function test(val) { return val ? 1 : 2; } 这应按照最新和最新版本进行。模拟器还不支持三元运算符吗?firebaser 虽然此功能已在控制台和生产

Google cloud firestore Firebase云Firestore安全规则与地图

我对云firestore的安全规则理解有问题。我不明白如何用地图检查用户的uid,这样他们就可以访问他们的数据了 提前感谢您的回答 这是我尝试过的规则 rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { //TEST ONLY //match /{document=**} { // allow read, write; //}

Google cloud firestore Firestore 1个全局索引与每个查询1个索引有什么更好?

我正在开发我的应用程序,但我遇到了一个两难的问题,那就是什么是处理firestore索引的最佳方法 我有一个查询,它在指定社区中搜索出版物,该社区至少包含一个标记,并且位于geohash范围内。该查询的索引如下所示: community Ascending tag Ascending location.geohash Ascending 现在,如果我的用户不需要按tag进行筛选,我将在不使用arrayContains(tag)的情况下运行查询,它会提示我创建另一个索引: communi

Google cloud firestore I';m无法在组件模板中显示vuex状态值

我正在使用一个可组合函数从firestore获取文档。我已将对象导入并返回到Vuex存储区。当我在我的组件中访问firestore对象时,我意识到它被包装在ComputedRefImpI{}中,我无法在模板标记中显示值 这是我的商店/index.js import { createStore } from 'vuex' import getCollection from '../composables/getCollection' function UpdateLocalStorage(car

Google cloud firestore 在Firestore中获取id作为字段

我想在firestore上创建一个小数据库。 当我发出POST请求时,我得到一个包含所有字段的响应,以及一些其他字段(包括名称字段): { "name": "projects/example-27d5e/databases/(default)/documents/cars/8inm4gXQwzVj5OrBbYoJ", "fields": { "Field3": { "stringValue": "3" },

Google cloud firestore 作用域集合组查询

考虑多租户firestore数据库: /customers/{customerId}/users/{userId}/rosters/{rosterId} 因为似乎collectionGroup的作用域是整个数据库。因此,在节点中: let rosters = db.collectionGroup('rosters').where('isActive', '==', 'true'); 将为所有客户返回匹配项。对于客户端,这可以通过安全规则确定范围 如何在管理访问中确定其范围?集合组查询将应用于

Google cloud firestore 有没有办法在firestore文档的特定字段而不是整个文档上设置firestore触发器

我的用户集合看起来像这样,我想在所有用户的联机字段上设置firestore触发器,这样每当用户脱机时,通知都不会发送到设备,而是存储在另一个集合中,并且当用户联机时,会发送通知。我无法为整个文档发送firestore触发器,因为令牌字段可以更改。有没有办法实现这一点,或者我必须将用户的在线状态存储在单独的集合中 有没有办法在firestore文档的特定字段而不是整个文档上设置firestore触发器 不,不可能。您只能在对整个文档进行更改时触发 如果您只希望触发器对特定字段中的更改采取操作,则可

Google cloud firestore 如何防止攻击者多次写入firestore数据库?

我已经为我的数据库设置了安全规则,但是仍然有一些地方必须允许用户写入,但我担心攻击者可能会对该位置进行多次写入,我可以添加身份验证检查以允许写入访问,但他们所要做的就是创建一个帐户以获得写入访问,我能想到的唯一其他解决方案是,如果可能的话,只允许每X分钟写入一次,或者是否有其他解决方案防止攻击者进行多次写入。将Doug Stevenson的评论发布为社区答案,以提高可视性: “他们所要做的就是创建一个帐户以获得写访问权”-是的,这就是工作方式。您的规则应该确定哪些用户可以读取和写入特定数据,或者

Google cloud firestore 错误-警告,缺少FIREBASE_配置环境变量。初始化firebase管理员将失败

我尝试将现有firestore数据库连接到Dialogflow实现。该功能已成功部署到谷歌云功能,但我无法将数据添加到我的数据库。我尝试更改节点版本8,但仍然失败。请帮帮我 Index.js 'use strict'; const admin = require('firebase-admin'); const {WebhookClient} = require('dialogflow-fulfillment'); const {Card, Suggestion} = require('dial

Google cloud firestore 正在恢复firestore导出的一部分

我正在跟进以下文件: 我正在尝试从今天开始在备份中还原一个集合pets。然而,我得到的是: # gcloud firestore import gs://pets-backup/2021-02-26T02:27:05_54372/ --collection-ids='pets' ERROR: (gcloud.firestore.import) INVALID_ARGUMENT: The requested kinds/namespaces are not available 我可以确认gs

Google cloud firestore GCP数据存储突然极端数据不一致(NDB 1.8.0)

我在europe-west3地区有6个月的Py38标准gae项目,以及数据存储模式下的Firestore 即使使用Redis作为全局缓存或不作为全局缓存,我也从未遇到过任何不一致的问题。直到上周,在put(insert)产生新结果后立即(1秒进行重定向)获取。我已经做了一些测试,大约需要30秒才能得到全局查询结果。它的行为实际上类似于一致性参数设置为0.05的datastore emulator 我读了很多关于数据存储及其最终一致性的文章,但正如文档所说,“旧”版本也是如此。数据存储模式下的新f

Google cloud firestore 地图和阵列上的Firestore索引-澄清

我试图了解Firestore如何在字段上创建索引。给定以下示例文档,如何创建索引,尤其是针对映射/数组的索引 我多次阅读文档,但仍然不确定。上面写着: 自动索引 默认情况下,Cloud Firestore会自动为文档中的每个字段和地图中的每个子字段维护单个字段索引。Cloud Firestore对单字段索引使用以下默认设置: 对于每个非数组和非映射字段,Cloud Firestore定义了两个集合范围单字段索引,一个处于升序模式,另一个处于降序模式 对于每个映射字段,Cloud Firest

Google cloud firestore 使用Firestore安全规则限制在嵌套对象上写入的字段

tl;dr:我想需要一种方法来获取元素集。toList[0],但可能我遗漏了什么 你好!!我正在使用Firestore开发一个预算应用程序,其中包含大量小对象信用卡交易。为了限制读取次数,将每个事务存储为单独的文档是没有意义的,因为用户一次可能需要数百个事务 相反,我有一个容器来保存许多事务,如下所示: /用户/{user\u id}/transactions/{container\u id} 容器:{ 交易:{ 事务处理\u id\u 1:{ 金额:8.25, 注:“chipotle午餐” }

Google cloud firestore HomeGraph查询响应与云服务[FireStore]-谷歌智能家居的查询响应不匹配

我是智能家居世界的新手,我正在尝试通过谷歌应用引擎和Firestore为我的云服务实施智能家居解决方案。我已经成功地集成了我的设备和智能家居解决方案,并能够使用Google assistant和Google home更新设备状态。经过大量阅读,Get HomeGraph ReportState也通过REST实现,REST在执行期间以及设备状态在Google home之外发生变化时执行(用户更改风扇的风扇速度) 现在的问题是,当执行API时,Firestore数据库由API更新,homegraph

Google cloud firestore 如何在Cloud Firestore中移动文档?

有人能帮助我如何在CloudFireStore中重命名、移动或更新文档或集合名称吗 还有,我是否可以访问我的Cloud Firestore,从终端或任何应用程序更新我的收藏或文档?实际上,没有move方法允许您简单地将文档从一个位置移动到另一个位置。你需要创建一个。要将文档从一个位置移动到另一个位置,我建议您使用以下方法: public void moveFirestoreDocument(DocumentReference fromPath, final DocumentReference t

Google cloud firestore 在异步文档创建时创建有序索引

我正在客户端上构建一个具有高级延迟加载功能的评论系统,如下所示: comment 1 | [load more] | comment 7 | comment 8 | [load more] | comment 10 为此,我需要根据创建时间对我的注释文档进行编号(以了解两个注释之间是否有更多注释要加载) 问题是,由于云函数是异步的,所以我并没有真正的方法根据创建时间为传入文档编制索引 例如,一个文档在几毫秒后创建,另一个文档可能会更早地触发云函数,从而导致索引中出现错误 我现在能想

Google cloud firestore Firestore读取的跟踪原因

在过去的几周里,我有过多的Firestore阅读。我的系统通常每天处理大约60k次读取。大约三周前,它跳到了每天大约1000万条,而在过去的两天里,它在一天内创造了超过4000万条记录!我的用户群没有增长,我的代码也没有改变,所以没有理由出现这样的峰值。我怀疑某个端点被我的应用程序范围之外的人击中,该人可能试图穿透或检索记录。我已经多次联系Firestore寻求帮助,因为这种情况每天都会造成巨大损失,但他们无法帮助我 是否有方法跟踪读取请求的来源,或者更重要的是查看正在读取的集合或文档的计数?由

Google cloud firestore “在哪里放置?”;我";Firestore安全规则str.matches(regex)中的标志?

我正在为我的Firebase Firestore项目编写安全规则,但我似乎找不到一个引用来举例说明使用正则表达式作为参数的正确语法。我现在用的是: request.resource.data.str.matches("^[a-z0-9]+$"); 现在我的问题是,表达式中不区分大小写的标志“i”应该放在哪里?我尝试了一些不同的组合,但没有成功 谢谢。Firestore安全规则遵循正则表达式的规则 这意味着您可以为匹配定义一个非捕获组,并将该组标记为使用不区分大小写的匹配: allow writ

Google cloud firestore Firestore:给定文档ID列表,什么';这是检查哪些记录确实存在的最便宜、最优雅的方法?

我有一个文档ID列表,其中一些可以删除。我需要一份仍然存在的记录列表。我使用FireStoreWebAPI。操作必须高效。保存一份单独的文档,其中包含ID列表。使用Firebase函数在onCreate和onDelete上更新它。当你需要清单的时候去拿。是否高效取决于您创建、删除文档的频率。 您还可以在不使用云功能的情况下在服务器端更新it,或者在受保护的客户端路由上更新it。保留一个单独的文档,其中包含ID列表。使用Firebase函数在onCreate和onDelete上更新它。当你需要清单

Google cloud firestore 使用'建立社交时间线;在';查询

我正在使用Firestore构建一个模仿Facebook的社交应用程序。我看到很多类似于Twitter的帖子都采用了followerd/followers的方式,但对于使用好友的应用程序来说,这并不适合 我的数据模型将有一个顶级集合(“posts”),每个post都有海报的用户ID(“UserID”)。为了构建时间线,我考虑简单地使用新的ish“in”查询: var timelineQuery = postsRef .where('UserID', whereIn: [user_123,

Google cloud firestore Firestore云函数侦听子集合,但不侦听父集合

这是从Firebase的文档中复制的:- 评论说,听众将收听“用户”和所有子集合中的所有文档 我怎么能只听子集合的所有文档而不听父集合?(即,在本例中,不要收听“用户”中的文档。) 根据文件: 如果要将触发器附加到一组文档,例如某个集合中的任何文档,请使用{通配符}代替文档ID 此外,我在这里搜索了一个: 对文档下组织的子集合的更改不算作对文档本身的更改。它们不会触发该文档上的快照事件 侦听子集合与侦听顶级集合没有任何区别。在这两种情况下,侦听器仅由对该集合或子集合中的文档的更改触发 然后我可

Google cloud firestore Firestore分页-如何查找查询后是否有更多数据(使用限制)

我们在当前的python 2.7标准环境中使用ndb数据存储。我们使用firestore本机模式将此应用程序迁移到python 3.7标准环境 我们对ndb数据存储使用分页,并使用fetch构造查询 query_results , next_curs, more_flag = query_structure.fetch_page(10) next_curs和more_标志非常有用,用于指示在当前查询获取10个元素之后是否有更多数据要获取。我们使用它来标记下一页/上一页的前端 我们在Fires

上一页   1   2   3    4   5   6  ... 下一页 最后一页 共 20 页