我们的数据库结构如下:
收藏foo
文件
收集条形图
具有多个字段的文档(接近1 MB限制)
试图将文档写入包含34571个字段的bar集合,我(从Go API)得到:
rpc错误:code=InvalidArgument desc=实体的内置索引项过多
好的,好的,我需要添加一个豁免:
大型数组或映射字段
大型数组或映射字段可以接近每个文档20000个索引项的限制。如果您不是基于大型数组或映射字段进行查询,则应将其从索引中豁免
但如何设置?控制台仅允许我设置单个集合名称和单个字
我正在查看位于的文档
[
了解如何使用我的API密钥交换firebase id和刷新令牌。
在文档中,我找到了示例代码和一些解释,如下所示
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"token":"[CUSTOM_TOKEN]","retu
上下文:这是我第一次使用FireStore。我想用它将通知状态推送到我们的移动应用程序。我可以看到,谷歌Firestore仪表盘在分析的保护伞下。在我们公司,我们主要使用三种工具来监控我们的应用程序:Zabbix、Dynatrace和基于Elasticsearch的某些内部解决方案。我需要将我们的内部监控系统与第一个Firestore项目产生的指标进行整合
我想要的是:基于个人假设:
1可能存在一些GET端点,我可以连接这些端点并轮询信息,比如说每分钟
2也许,遵循数据库实时推送事件跨长时间连接
我在试图更新的文档中有一个嵌套对象。我正在尝试更新我的照片收藏的作者对象中的avatarUrl属性(请参见下面的屏幕截图)然而,尽管查看了文档并使用了点符号,但我似乎无法更新我的字段
以下是我正在尝试更新的参考资料:照片>文档ID>作者.avatarUrl
这是我的相关代码。当我让用户更新他的头像URL时,我还需要用他的新头像更新他的所有文档
当我让用户更新他的头像URL时,我还需要用他的新头像更新他的所有文档
您的代码似乎没有在任何地方检查错误。有些事情可能会出问题,你永远不会知道。
我遵循了这一点,当我在视图中使用login按钮时,它给出了一个错误消息“不变冲突:requireNativeComponent:“在UIManager中找不到RCTFBLoginButton”
我读了一些博客,然后发现libRCTFBSDK.a不在“与二进制项的链接”列表中,但如果我这样做,就会出现其他错误,如:
致命错误:未找到“React/RCTBridgeModule.h”文件
致命错误:'React/RCTConvert.h'文件未找到
而且构建也失败了
任何建议,甚至解决方案都会被采纳
我什么时候应该在set()上使用update()?使用set()和merge:true,我可以做与update()完全相同的事情,并且保证不会失败,而update()如果文档不存在,则会失败。您的问题已经在本主题中得到了回答:您的问题已经在本主题中得到了回答:
为了将计数器的值增加1,事务或字段值,使用以下哪种方法更安全。增量(1)?或者这种方法也能做同样的事情吗?使用第二个选项有什么缺点吗?我这样问是因为我实际上使用了一行代码,而在事务处理中使用的是最小15行代码。谢谢 它们最终具有完全相同的效果字段值。增量效率更高,因为它不需要客户端和服务器之间额外的往返来处理客户端上的事务处理程序回调。旧式事务更灵活,您可以在更新文档之前执行额外的检查。但是如果您只想增加一个计数器,那么所有的样板文件都是无用的。
我在GCS中有一个firestore备份文件,名为:all_namespaces_kind_Rates.export_metadata。我已经设置了一个cron作业,每24小时更新一次这个文件。我现在需要的是找到一种方法,通过编程将这个导出元数据文件发送到BigQuery。BigQuery能够调度来自GCS的数据传输,但仅适用于以下格式的文件:CSV、JSON、AVRO、PARQUET和ORC。如何以编程方式将firestore备份文件传输到BigQuery?如果您的cron作业可以访问bq命令
我尝试使用云壳,
gcloud firestore操作删除[操作名称],
我不知道名称操作\u name,因为键入bucket/backup name/folder name/时出错,
网站中的某些信息:
,
如何解决此错误?如果您不知道要删除的操作,则需要列出所有可用操作。要列出操作,请使用以下命令:
gcloud firestore operations list
您可以从列表中删除操作(如果有)
我正在尝试描述的这个例子。我得到这个错误:
learn.load(model_file_name)
File "/usr/local/lib/python3.6/site-packages/fastai/basic_train.py", line 269, in load
state = torch.load(source, map_location=device)
File "/usr/local/lib/python3.6/site-packages/torch/serialization.
这提供了在安全规则中使用函数exists、get和getAfter时读取计数的详细信息。
但这些究竟意味着什么:
即使您的规则多次引用该文档,每个依赖文档也只需读取一次
因此,如果我在同一个规则中使用2 get,则只有1 read
但是如果我在同一个规则中使用get和getAfter呢?我的账单是2次读取还是仅1次读取,因为它是同一文档
每个请求只对规则评估一次收费
这是否意味着,如果我在同一个文档上使用get,但在同一批中使用不同的规则,那么总共读取1次,而不是每次读取1次?对getAft
有人知道我可以在一个文档中添加多少集合吗
以下是我的firestore结构:
alluser->UserInfo->userId->{user info documents(多个)}
可以看出,单用户信息是具有多个文档的集合对象。
此结构是否良好,或者以后是否会导致问题
我想知道文档中的集合数量是否有限制。我有一个用户作为一个集合,因此如果以后我有数千个用户,那么这个结构会起什么作用?在Firestore上有一个文档的多个子集合是没有问题的。为了提供一个快速的洞察力和示例,一个文档中最多可以有1
我收到了一封来自谷歌的电子邮件,内容是关于没有实施数据库规则。已选中-通常已打开读写。仅针对授权用户更改为读写。创建了一个带有pwd的用户,但收到了另一封来自谷歌的电子邮件,内容是关于没有实施规则。。。有人能告诉我怎么处理这个吗
我当前的Firebase规则:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=
我有一个在firestore中记录订单和账单的应用程序。每个订单和账单都引用一个客户,每个客户都在一个组中。因为我需要允许按客户组进行过滤,所以我也将groupId存储在订单/账单中。困难的部分是当有人想要改变客户群时。对于我来说,更改该客户所有订单和账单上的groupId是唯一的解决方案吗
如果更新的数量超过500,那么我面临的风险是,我无法批量完成更新,因此我无法保证更新的正确性。
解决这种在sql中只需要将orders/bills表与customers表连接起来的用例的推荐模式是什么?如果
我有一个实时的群组和私人聊天结构,有没有什么方法可以获得聊天者的图片和姓名?目前,我使用userid进行单独的查询来获取它,但是如果有人更改了他们的名称或图像,它将不会更新。
您通常会为包含每个用户信息的RTDB节点启动RTDB侦听器。或者,您可以将所有相关用户信息复制到“当前聊天”中,如果用户更改了他们的个人资料信息,您也可以将新信息复制到任何“当前聊天”会话中
在我的应用程序中,我在Firestore的profile集合中维护用户配置文件信息,并在RTDB中维护聊天详细信息。因此,我有一个聊
我倾向于观察在Firestore中存储条目和通过Firestore API查询条目之间的随机延迟。大多数时候它是即时的,但在最坏的情况下可能长达几天
具体来说,数据上传来自手机,查询来自(单独的)桌面
当存储的条目变得可查询时,是否有任何SLO打开?没有SLO,主要是因为Firestore目前处于测试阶段。尽管我发现任何东西都不太可能在两天内被另一个客户看到
我正在努力制定firestore规则
根据屏幕截图,我为用户收集了动态文档ID
我正在尝试为用户设置仅访问其文档的规则
FbId是facebook id(因为它是我应用程序中的身份验证方式)
userId是firebase id(不确定保存它是否重要)
以下是我目前的规则:
此规则允许经过身份验证的用户访问整个集合
我如何设置此规则?如果有什么我需要改变的结构
更新:我不想更改用户集合的documentid以匹配userid,因为我有另一个集合,其中用户可以有多个文档;所以这个解决方案并不适合
我在python项目中使用了很多依赖项。我正在使用firestore、pyqt5、numpy和其他一些工具。我尝试使用Pyinstaller创建一个可执行文件,但每当我运行该文件时,它都会说无法执行脚本。
我还在main.py文件中使用images文件夹和其他2个python文件作为导入
我尝试使用隐藏的导入,但仍然不起作用。有没有简单的方法来创建pyqt5+firestore项目
Main.py
出勤率
好的,经过几个小时的研究,我发现了这篇文章-
问题在于firestore,而不是PyQt
我允许用户推送=>1.581652625083E12这样的值
现在,我如何在firestore安全规则中解析其中的一个长数字
我想知道它的值在某个范围内
它可能看起来像时间戳,但它不是
我试着看了所有的东西,但是没有发现任何有用的东西
存在浮点解析引用
float("2.2") == 2.2
float(2) == 2.0
有可能进行int解析
int("2") == 2
int(2.0) == 2
那么有没有一种方法可以像这样解析long
puff和团队请帮助如果您允许用户在Firesto
我有一个数据库,其中包含使用此模式的文档集合(缩短模式,因为某些数据与我的问题无关):
这些文档很容易达到100或200 kB,这取决于它们所持有的项目和最终文件的数量。同样非常重要的是,它们要以尽可能小的带宽使用率尽可能快地更新
这是在web应用程序上下文中,使用Angular 9和@Angular/fire6.0.0
问题
当最终用户在对象的项数组中编辑一项时,就像编辑一个属性一样,反映在数据库中需要我发送整个对象,因为firestore的更新方法不支持字段路径中的数组索引,只能对数组执行的
如果我有以下规则:
match /users/{userId} {
allow read, write: if request.auth.uid == userId;
}
用户也能读/写所有子集合。如果不是,我将如何允许用户从根目录中访问所有子集合。按照您当前编写规则的方式,它仅适用于/users本身中的文档,而不适用于子集合
如果还希望允许访问子集合,可以将匹配更改为:
match /users/{userId=**} {
请参阅上的Firebase文档,特别是上的部分
这是我的第一个SwiftUI应用程序。我一直在阅读开发者信息和教程,但是我找不到我想要做的事情
这是一个图书馆应用程序,可以通过两种方式访问图书信息
搜索字段->尚未搜索
描述书的特点
我正在使用Firestore文档处理第二个
我可以获得第一个列表(作者),并保存选定的作者。当我试图使用firestorm文档访问第二个描述列表(类型)时,问题就开始了。
DispatchQueue无法正常工作,因为它可以获取文档信息,但无法填充数组,因此始终发送空数组[]。如果我创建了数组genreItems并
我从Firestore检索到一个文档,其中有一个日期字段X。我想知道X是否是未来的日期。如何从浏览器中使用JavaScript实现这一点
如果我能得到一个服务器端的时间戳,然后在浏览器中比较X>S,这将是最好的?我怎样才能得到S
我知道在上传文档和执行查询时,我已经使用了服务器时间戳的占位符值,但我希望这里的时间戳有一个具体的值。要获得服务器时间的估计值,只需编写一个包含服务器时间哨兵令牌作为值的字段的文档,然后立即读回文档并查看服务器实际写入的时间戳。然后当然要删除文档。问题是,应用程序和服务
我有一个叫做schedule的Firestore文档,它是高中足球比赛的日程表。当游戏中的分数发生变化时,文档将更新
每个用户在一个名为watched的集合中都有自己的文档。这是用户选择观看的游戏,并且可以提供额外的字段,例如关于游戏的注释
我有一个列表视图,显示用户观看的所有游戏(他们观看的文档)。我需要在其中一个文档更新时更新列表视图
我最初的想法是将一个StreamBuilder绑定到schedule文档,其子对象是另一个StreamBuilder绑定到用户关注的文档,其子对象是ListV
我们正在使用Google云数据存储和Google Firestore后端
是否有可能在Google云数据存储中创建不同的阶段以将开发与生产数据分开?开发人员需要为每个独立的环境创建不同的项目。云产品没有任何内部隔离。开发者需要为每个隔离的环境创建不同的项目。云产品没有任何内部隔离。是的,请为每个环境创建不同的项目,并通过CI/CD控制google xxx.josn文件
这样地
是的,请为每个环境创建不同的项目,并通过CI/CD控制google xxx.josn文件
这样地
也发布在也发布在
我收集了一批货物
我想过滤postalcode,它是“address\u from”映射的一部分。
这是否可能,是否需要额外的步骤(例如索引)来实现这一点
query.where('address_from.postalcode', '==', shipment_code);
这个查询应该可以正常工作。任何单个字段查询都应该在不创建索引的情况下工作,因为默认情况下所有字段都会被索引。需要索引的查询将生成错误消息,告诉您需要创建索引,并提供到控制台的链接以自动执行此操作
我想查询集合中位置字段条件满足的大于或等于或等于或等于的所有文档,然后按“人口”字段(即数字)的降序排列这些文档,并获得前10个人口位置
_firestore.collectionGroup(_collectionGroupName)
.where("location",isGreaterThanOrEqualTo: lowGeoPoint)
.where("location",isLessThanOrEqualTo
我使用CloudFireStore作为我的数据库,一般来说,数据库设计得不多
目前,我有一个“产品”集合,其中每个文档都是一个“产品”
我想在“产品”文档、我的“用户配置文件”文档中存储数据子集,以提高速度并限制对数据库的查询数量
我想知道这是否是一个好的做法,如果不是,更好的做法是什么
谢谢。正如Doug所评论的,在NoSQL数据库中复制数据是很常见的。事实上,这就是为什么这些数据库可以扩展到如此大规模的读取工作负载:这些实现在写入时做更多的工作,因此它们读取数据的工作量更少
如果您对该主题不
加载特定firebase集合后,如何禁用其同步?除非强制执行,否则不应再次检查服务器
假设我有一个用户集合。我只想在用户登录时从服务器读取用户值。在用户注销并再次登录之前,我不希望更新用户集合的值
有办法吗?无法“禁用”特定集合上的同步。SDK将始终以相同的行为同步所有内容。如果只想加载一次数据,则需要编写一些代码来处理这种情况。你可以:
仅对服务器查询一次,然后将结果存储到另一个本地数据库中进行查询,而无需再次处理Firestore
,仅对服务器进行一次查询,然后对以后的所有查询进行查询。这是
我已经成功地使用了onSnapshot来提醒代码底层数据的更改,如
// Set up to listen for changes to the "figures" collection, that is,
// someone has created a new figure that we will want to list on the screen.
setFiguresListener: function () {
//
我知道索引在firestore中是有成本的。大多数时候,我们只是简单地存储对象,而不真正关心索引,即使我们不希望大多数字段被索引
如果我理解正确,任何级别的任何字段都会被索引。即,对于以下伪json文档
{
"root_field1": "abc" (indexed)
"root_field2": "def" (indexed)
"root_field3": {
"
我们基于firestore DB的模型自然发展。现在,我们希望将所有现有文档更新为新的(隐式)模式
是否有任何工具支持这一点,或者最佳实践是什么。我希望有一个与rails ActiveRecord迁移类似的概念 目前,对于Firestore,您必须编写自己的代码,将所有现有文档更新为新的(隐式)模式。我在几周前的一篇帖子中读到,Firestore团队正在努力使这一点在未来变得更容易
如果您的新模式需要对整个数据库进行一些更改,还可以考虑使用,这样可以将数据转储到GCS桶中。它不是您可能期望的JS
假设我有一个Firestore文档,有一个名为“AlarmTime”的日期/时间字段,它保存一些未来的日期/时间值
Q1:当任何文档的“AlarmTime”与当前时间匹配时,是否有方法告诉Firestore触发事件,以便我们可以在云函数中响应该触发事件
Q2:如果这不可能,那么在云函数中查找任何文档的“AlarmTime”字段已到达当前时间的最有效方法是什么?我会发现连续轮询数据库效率很低
提前谢谢你!
本:这是不可能的
A2:您可以考虑在延迟上调度另一个函数的回调。您必须在写入字段时安排此操
在firestore函数中编制索引时,我如何将文本值转换为小写。我试过这个
const newRef = db.collection("user").where("profile.companyName".toLowerCase(), ">=", data.value.toLowerCase())
但这部分给了我一个错误
"profile.companyName".toLowerCase()
甚至有可能做到吗?我真的不想将所有名称都保存为小写,以便能够正确索引我的名称,然后将其大写。F
我收集了大约3万份文件。我的安全规则配置为只有经过身份验证的用户才能从此集合中读取此类文档。我无法添加有关此特定集合的读取操作的更多约束。
使用我的应用程序时,根据查询,平均返回多达50个文档。
有没有办法防止恶意用户在Firestore中下载整个集合 要限制用户一次可以读取的文档数量,您可以在您的安全规则中输入,如文档中所示:
允许列表:if request.query.limit
allow list: if request.query.limit <= 50;
在查询firestore时,当我引入一条规则时,我面临一个权限被拒绝的错误。我已经将复杂的规则和过滤器缩小到以下两个示例中,其中一个查询有效,另一个则无效。我不明白我的问题出在哪里
根据我的理解,规则不是过滤器。根据该文档:“如果查询可能返回客户端无权读取的文档,则整个请求将失败。”
考虑到这一点,我一直在迭代我的规则、过滤器和数据,并得出以下结论:
数据:
我收集的“MyCollection”中没有数据。事实上,收藏“MyCollection”从未存在过
规则:
rules_version =
从文档“…where()方法接受三个参数:要筛选的字段、比较操作和值。比较可以是=…”
我们需要进行的查询包括:
等于(=)
不等于(?)
少于()
小于或等于
包含(???)
不包含(???)
以(???)开头
在这种情况下,建议实现全文搜索,如Elastic或Algolia。我不需要全文搜索-我只需要这些基本运算符在指定字段中搜索。但我面临的更大问题是,我的应用程序在相当长的一段时间内处于离线状态,我们缓存了我们需要的数据,离线全文搜索不是一个选项(除非您获得了Algolia的企业($$
[EDIT:感谢@JRLtechwriting,下面提到的文档已经更新,因此不再提及名称空间——Firestore(还没有)支持它们——并包含了更完整的示例。经过这些改进后,我的问题可能不会再提了!]
我正试图编写一个通用函数来计算Cloud Firestore文档的存储大小,但我已经无法计算文档名称的大小,因为我不知道文档名称空间的确切含义:
文档名称的大小是以下各项的总和:
命名空间字符串大小(如果不在默认命名空间中)
文档名称的完整字符串大小(每个整数ID为8个字节)
16个附加字节
一个原子操作,一个事务和一个批处理在一起,是否可以在Firestore中实现?或者它们是两个不同的操作?事务与批处理不同。并且不能在批处理中执行事务。你必须选择
当您只有要创建的文档或有已知更新时,可以使用批处理。当需要在修改文档之前先阅读文档时,可以使用事务
我试图使用GCP文件存储,遵循产品网站中的简单快速示例,并得到一个错误:“google.api_core.exceptions.failedPremission:400云Firestore api不可用于云数据存储项目。”
我以前在同一个项目中使用过数据存储,然后我在项目中禁用了数据存储api并尝试了该示例,仍然会出现相同的错误,除了创建一个新项目之外,任何人都可以建议怎么做?如果您有一个空的云数据存储数据库,并且从未对该数据库执行过写入操作,您可以通过单击“数据存储/实体”页面上的“升级到Fi
我是Firestore安全规则的新手,我想确保我编写的规则对我的案件是安全的
我的数据库结构如下所示:
service cloud.firestore {
match /databases/{database}/documents {
//can read and create if matching userId
//CREATE: NO USER CAN DELETE ACCOUNTS
match /users/{userId} {
allo
我有个问题。
我有一个从Firestore计算聚合数据的查询(使用键z从用户x获取时间戳y之后的所有文档)。产生数百个文档
然后我从这个数据集中计算每日、每周、每月和每年的值(平均值、总和、最大值等)。
结果是一个对象:
{ "d": 100: { "sum": 100, "max": 23, "avg": 20 }, "w": .... , "m": { ....} ...}
我想保存这个对象,所以我不必每次都进行查询和计算
-将此保存到云内存存储是否有价值
-用户调用我的服务时,相同数据的
我有这个更新规则
allow update: if request.resource.data.abc == resource.data.abc || exists(path/to/document)
如果第一个条件为真;规则在执行之后还是也在执行?规则引擎当前会使评估短路。因此,如果|的第一个条件为true,则不计算第二个条件
请注意,这没有文档记录,因此可能会在某个时候发生变化。例如,如果条件的并行计算会加快整个规则的计算时间。规则引擎当前会使计算短路。因此,如果|的第一个条件为true,
嘿,我目前正试图通过ESP8266在Firestore函数中发送POST请求,但每次返回-5
我已经尝试过Postman的POST请求&它可以很好地处理url编码和原始数据
我的ESP8266还与稳定的WiFi连接,我还提供了所需的库
这是我的密码:
#include <ESP8266WiFi.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h&g
我正在查询文档中的两个字段。我在一个字段中使用,其中(这就是它在flatter中的名称,对于web,它在中被称为)操作符。我需要查询的另一个字段是字符串。我想用两个值来查询这个值。我是否需要分开查询,或者是否有方法在单个查询中执行完整查询。根据Firestore文档,关于:
每个查询只能在中使用一个,或者数组包含任何子句。不能在同一查询中同时使用和数组包含任何
由于在子句中需要两个,其中/,因此需要对第二个,其中中的每个值执行单独的查询,然后将结果合并到应用程序代码中。我刚刚注意到,Peter在
我有一个文档结构,其中有一个帐户集合(_accounts),集合中的每个帐户文档都有一个子集合allowedusers。allowedusers中的文档具有访问该帐户的每个用户的文档。每个帐户文档也有一个userid字符串数组的字段,我正在使用该数组进行查询
确保根据允许的用户检查每次读取的My Firestore规则是:
match /_accounts/{accountid}{
allow read: if request.auth != null && ge
我正在为Firestore安装。安装程序工作正常,它会在添加、删除和更新时更新索引。但现在我想用现有数据来回填它
安装指南中提供了以下步骤,但我不知道如何运行该脚本。我曾尝试将其直接粘贴到node shell和powershell中,将其添加到js或ps1文件中并运行该文件,但我不知道这是什么类型的脚本
如何运行此脚本?(我旁边有一个服务帐户json)这是bash
当直接在bash中粘贴时,它可以工作,在行结束符之后的每个换行上都有空格。或者作为命令行中的.sh文件
#!/bin/bash
L
我有一个Firestore文档,它很少更改,并且在我的应用程序的许多不同位置用作查找表。我的理解是,当我对文档执行get时,它总是执行服务器查询,即使文档中的数据没有更改。本地缓存仅在服务器不可用时使用
由于文档很少更改,我想这样做
1) 当应用程序启动时,获取文档并将其存储在本地
2) 设置侦听器,以便在文档更改时更新本地副本
3) 当本地副本更新时,将此更改广播到可能正在使用文档的任何小部件
这是我希望Firestore默认工作的方式
这是个好主意吗?关于如何实现这一点,有什么建议吗?以下是
考虑以下代码:
match /shocking_contents_main_app/{shocking_content_main_app} { // Do not specify any read/update/delete rules - OK, last check 2019/06/03
allow create: if request.auth.uid != null && get(/databases/$(database)/documents/users/$(
我尝试设置基本安全规则,并将request.auth返回的uid作为文档id存储在文档中,但在设置规则时
匹配/users/{id}
允许读、写:if request.auth.uid==id
这是不允许的。为什么呢?
提前谢谢。
您必须指定正确的文档名,而不是像/users/{id}这样的别名。
根据您的规则,您必须指定请求者的uid,与文档名相同
总结一下,试试:
位置=/users/dummyid
uid=dummyid根据文档,花括号应该代表文档id吗?我尝试了下面的方法,效果很好,
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 20 页