随着谷歌确认云Firestore已经退出测试版,现在可以普遍使用。他们提供如下无火花限值
Stored data 1 GB total
Bandwidth 10GB/month
Document writes 20K/day
Document reads 50K/day
Document deletes 20K/day
我不明白文档每天写20K,每天读50K
20K/天意味着20KB/天吗?
20K/天意味着20KB/天吗
不,这意味着每天有20000(两万)次读取操作。它与KB无关。20
我有一个应用程序,其中显示给用户的所有数据都是从firestore文档接收的。这些文档由用户生成的内容或从第三方API导入的数据组成。导入的文档包含过期时间戳。应用程序中的每个屏幕都映射到一个或多个firestore文档路径
如果应用程序请求并订阅特定路径上的文档,但找不到该文档,或者该文档已过期,我希望使用云函数从外部API(重新)导入该文档,这样我可以确保更新的数据将很快出现在应用程序中
但是,我找不到文档读取或未找到操作的触发器,这是显而易见的选择
如果无法在读取时触发函数,这里有什么替代
文档更新(来自客户端的更新)是否与Firestore服务器副本在写入次数方面没有差异
还将调用正在侦听更新的云函数吗?根据文档,每个set()或update()操作都将被视为写入操作。在这种情况下,无论是否使用新更改调用,您仍将收取1次写入的费用。文档更新都会导致写入的计费。但是,如果文档中的数据没有实际更改,则不会调用云函数和实时侦听器。我怀疑监听器可能被调用的唯一情况是,客户机本身试图对其正在侦听的同一文档进行更新,但我对此不确定
我已经按照上的说明安装了仿真器,我可以启动它,到目前为止还不错
在这里和那里挑选了一些代码之后,我编写了我的第一个测试,如下所示:
import * as firebasetesting from '@firebase/testing';
import * as firebase from 'firebase';
import * as fs from 'fs';
const projectId = 'my-firebase-project';
const rules = fs.readFil
我有一个基本的Micronaut应用程序,我正在构建一个本地映像。我正在用这些参数构建它:
native-image \
--no-server \
-H:+TraceClassInitialization \
-H:+ReportExceptionStackTraces \
--enable-url-protocols=http,https \
--enable-all-security-services \
--report-unsupported-element
我正在尝试使用DispatchQueue更新我的UI,这样当Firebase对用户进行身份验证时,我可以将新创建的数据传递到下一个屏幕
我有一个SignUpView,它注册了一个用户,然后在成功后转到ProfileView。ProfileView允许用户为应用程序添加更具体的细节
我有一个userSession对象,它成功地让用户登录,但不会在下一个屏幕上立即更新UI。这可能是因为我没有正确使用DispatchQueue.main.async,我无法在SwiftUI中的视图的主体中使用它
这里有
我正在制作一个类似这样的结构:
users
user1
user2
user3
group
group1
group2
group3
subcollections1
subdoc11
subdoc12
subcollections2
subdoc21
subdoc22
match /groups/{groupId} {
allow read, write: if resource.d
以下是我的firestore规则:
match /databases/{database}/documents {
match /customers/{customerId} {
allow write: if exists(/databases/$(database)/documents/$(request.resource.data.referred_by));
allow read: if true;
}
}
以下数据未通过此规则(我能够
我正在使用Firestore规则,希望在函数中调用get()/exist(),然后在子集合中调用该函数。但它会给出错误:
运行模拟时出错-发生未知错误(查看过期的模拟)
你能帮我指出我的错误吗
当我尝试
允许创建:如果获取(/databases/{database}/documents/attendars/$(request.auth.uid).data.UserID)=request.auth.uid
它将给出以下错误:
运行模拟时出错-错误:simulator.rules行[12],列[31
我已经阅读了所有这些文件:有3个例子:
发布到主题
以批处理方式发布
使用重试请求发布
我想将示例2和3合并到单一模式中,因此使用批处理模式发布可以处理重试请求。如何执行此操作?对象pubsub_v1.PublisherClient接受这两个参数作为构造的输入
通过包含两个可选参数batch_settings和client_config,您可以配置具有重试请求的批处理模式
从google.cloud导入pubsub_v1
publisher\u client=pubsub\u v1.publis
我有两个不同项目的订单:project-a:/documents/orders,和project-b:/documents/orders(大约50万)
我需要将订单从project-b导入project-a:/documents/orders\u OLD。来自project-b的订单采用较旧的格式,需要转换为project-a中的“从不”格式:如果它们一开始就在同一个数据库中,这项任务将更容易完成
我知道我可以将它们从project-a导出到bucket中,然后复制到project-b中的buc
我正在为Firestore API实现一个gRPC客户端
我正在调用Firestore.ListCollectionIds,页面大小为1000(因为提到这个字段是int32),但我只得到了300个结果
有人能正式证实这一点吗
示例代码:
request = V1.ListDocumentsRequest.new(
parent: "projects/abc-123/databases/(default)/documents",
page_size: 1000,
collection_
我想每天将特定firestore集合及其所有嵌套子集合备份到云存储。我还没有找到任何导出其所有嵌套子集合的内容。请帮忙。
我们的firebase托管多个项目。每个项目都有自己的根级别集合。
导出时,我只想导出与一个特定项目相关的集合。
我不想从其他项目导出集合。挑战在于,这些项目可能有一些相同的子集合id,例如,每个项目都有自己的用户集合。是否有原因不执行您想要的操作?(如果您需要将其包装为更多自定义代码以触发,则可能使用)。该导出功能仅导出直接子集合,而不是嵌套子集合。我正在看你提到的api。
我有以下安全规则:
match /collection1/{doc_id} {
allow read: if (get(/databases/$(database)/documents/collection2/$(doc_id)).author ==
request.auth.uid);
}
我正在做的是尝试将通配符变量从父路径doc\u id传递到get方法的路径中。此文档在collection1中的读取权限取决于另一个集合c
我想写一个函数,其中输入用户输入的用户名,并将其与firestore中的用户名feild进行比较。如果存在,函数必须返回false,如果不存在,则必须返回true
这是我的密码。。当我调用它时,它总是返回真的
func checkUser(username: String)-> Bool{
var test = true
FirebaseReference(.user).getDocuments { (snap, err) in
为了快速切入点,我们有用户条目,其中包含一系列他们过敏的成分。
我们还有配方条目,其中包含一系列由其制成的成分。
现在,我们想向用户展示他可以放心食用的食谱。
似乎我们需要对包含任何查询的数组求反,并得到通常使用包含任何查询的数组得到的互补集。
您知道我们如何重新建模数据或执行上述查询吗
提前谢谢
我想直接从本地脚本/云功能向google analytics发送用户属性值。(js、ts、python..)
我知道可以从本机应用程序或web发送属性,我已经在做这两件事了。但重要的是,如何从脚本发送属性,我可以随时运行它
所以工作步骤应该是这样的
从firestore获取所有用户(简单)
对于每个用户,发送一个属性,如下所示:
这里的问题是,如何区分用户?如何定义用户ID等等。任何帮助都将不胜感激
function setUserProperties() {
firebase.anal
Firestore的RESTAPI的文档到处都是,我想这是情有可原的,因为它仍处于测试阶段。他们似乎建议REST API应遵循与gRPC客户机相同的规则,因此如果路径具有如下规则:
匹配/事物/*{
允许创造;
允许读取:如果request.auth.uid!=null;
}
(假设我希望任何人都能够添加内容,然后只有经过身份验证的用户才能看到这些内容)
那么我应该能够:
卷曲'https://content-firestore.googleapis.com/v1beta1/projects
我们正在开发一款利用Firebase Firestore的应用程序。每天午夜,对于集合中的每个用户文档,我们都要将计数器属性的值设置为1
云功能似乎是一个合理的选择,我们很快找到了一种安排云功能的方法:
exports.incrementCounterNightly = functions.pubsub.schedule('0 0 * * *')
.timeZone('Europe/London')
.onRun((context) => {
console.log('This
我将获取所有包含特定值的文档,并按“时间戳”对它们进行排序
var snapshot = await Firestore.instance
.collection('posts')
.where('exam', isEqualTo: _doc)
.orderBy(
'timestamp',
descending: true,
)
.limit(50)
.getDocuments();
但F
我需要从从从中返回的集合中获取一个项目
resource.data.diff(request.data).changedKeys()
那么,有没有办法从集合中获取项目,或者将集合转换为列表以获取项目
我不需要比较任何值,所以我不需要hasOnly()或任何相关函数,我需要在一个集合中获取一个值,有什么方法可以做到这一点吗?链接的API文档中有您可以使用的完整列表。同样的事情
如您所见,集合中没有可用的元素访问器。您所能做的就是检查大小和存在性,并操纵内容
对于列表,您必须知道元素的索引才能获取
getUserProfile(uid:String,完成:@escaping(user?->Void)->Void{
你好,朱尔斯,你能提供更多的上下文吗?代码段似乎已断开,你能更新格式吗?另外,如果你有一个指针指向代码段的来源,那会很有帮助。谢谢!你好,朱尔斯,你能提供更多的上下文吗?代码段似乎已断开,你能更新格式吗?还有,如果你有一个指针指向sni的来源,你能更新格式吗这会很有帮助的,谢谢!
//database reference
var ref: Firestore {
如果我的任何读、写或删除操作由于Firestore安全规则拒绝而失败,它将被视为一个操作吗?换句话说,我正在更新一个文档,但它失败了(因为Firestore安全规则不允许写入)。它是否仍将计为1次写入操作?否,它将不计为写入操作。数据库实际上有一个寄存器,用于记录文档中的更改,以便将其记帐为写入
如果规则必须使用get()或exists()执行文档读取以验证操作,则这些操作将被计费。非常感谢@Doug
我在iOS中有一个应用程序,我几乎完成了,我正在Firestore中配置服务器端规则。我将这些规则复制到我拥有的另一个应用程序中,该应用程序的用户具有相同的身份验证和数据库结构。但是,这组代码不起作用
我的数据结构有两个根集合:User和Feed。提要是任何经过身份验证的用户都应该能够访问的公共集合
用户集合和子集合只能由登录的经过身份验证的用户访问
这里的提要访问工作正常,但我无法读取用户集合/子集合,可能也无法写入任何内容
rules_version = '2';
service cloud
发件人:
//创建对cities集合的引用
var citiesRef=db.collection(“城市”)
//针对集合创建查询。
var query=citiesRef.where(“state”、“=”、“CA”)
从文档中可以查询集合。(CollectionReference类型)
但我有一个包含引用数组的文档,它的类型是DocumentReference[],我很好奇是否可以实现对DocumentReference[]的查询?
比如:
someCities:DocumentRefer
我正在寻找示例/教程或解释如何使用既具有Firebase身份验证又具有Firestore云数据库的应用程序。我想我了解如何使用Firestore db设置脱机持久性,我认为这意味着数据将在我的应用程序运行时被持久化,并且连接可能会丢失
如果一个用户跳到一个零连接的平面上,想要运行我的应用程序,并且首先出现登录屏幕进行身份验证,该怎么办。您是否可以举出一个示例或教程,说明如何设置该应用程序,以便该应用程序可以从一开始就在没有连接的情况下运行,然后在获得连接后能够进行身份验证并将数据放入Firest
,但总而言之-我正在尝试使用Firestore进行数据存储并使用GCB进行CI/CD设置React应用程序。然而,当我使用Firestore推送新代码时,GCB挂起在测试阶段
我已经做了一些基本的调试-
当我尝试从Firestore读取数据时,它会挂起,但在我只写数据的地方,它构建得很好
在检查我与Firestore的交互时,他们都通过了,并显示Firestore可以很好地读取。它只是,你知道,在那之后,什么地方也去不了
正如Reddit帖子中所指出的,我目前最好的假设是,这个问题是由于与F
我正在处理一个产品集合,这些产品属于一个商店,所以我对我的集合“产品”和“商店”进行了非规范化,如下所示:
在产品中,我有一个ID为store的映射,我这样做是为了进行多路径更新
最后,我需要在产品集合中按商店名称或产品名称进行搜索,我尝试在firestore中使用索引,但ID的映射是动态的,因此无法配置
使用这种结构,如果任何存储更改了数据,我可以通过多路径更新控制数据的一致性,但使用where进行查询对我来说是个问题
你们有什么建议吗
谢谢使用您现在的数据,您尝试执行的查询是不可能的。如果
我有一个Dialogflow内联,在这里,当执行欢迎意图时,我需要调用agent.add(),因此它会以类似的方式进行响应
你好(用户名)
此用户名不是用户写入的用户名,而是他已登录到设备的配置文件名要获取用户名,您需要向用户请求权限。因此,这通常不是欢迎意图的一部分(至少不是他们第一次谈论你的行为)。您需要做以下两件事之一:
包含用户名的请求。一旦您请求了此信息,您可以这样做,以便在用户下次连接时获得它
请用户修改。一旦他们这样做了,您将在每个请求中获得一个包含用户信息的身份令牌
我有一个Firestore数据库,其中包含“作业”集合中的作业列表。每个作业都有一个结束日期,它是“时间戳”数据类型。当我尝试使用where条件进行查询时,在使用react本机firebase模块时,没有返回任何数据
下面是我正在使用的代码:
return db.collection('jobs')
.where('end', '>=', new Date());
还尝试:
.where('end', '>=', new Date().toISOString())
我在Node.js中编写了一个文件,用于云数据存储实体、种类和索引中的常规CRUD和查询,我希望对我的云Firestore数据库集合和文档使用相同的逻辑。对于不熟悉前者的人,有没有办法将数据存储查询语法转换为Firestore
对于不熟悉前者的人,有没有办法将数据存储查询语法转换为Firestore
不,没有,您应该为此编写自己的代码。因此,要查询Firestore数据库,您应该查看有关云内Firestore的官方文档
但是,如果您想将实际的数据存储数据库转换为Cloud Firestore,您
我有一个父集合(班级)和该父集合的子集合(学生)。”学生集合有一个名为“学生id”的字段。我需要的是获取特定学生id的所有类
我花了很多时间寻找答案,但找不到答案。请帮帮我
我试过这个。但不起作用
export class ClassService {
constructor(private db: AngularFirestore) { }
loadClasses(studentId: String) {
return this.db.collection('class',
snapshot1使用单个集合,而snapshot2使用集合组
final snapshot1 = await FirebaseFirestore.instance
.collection('users')
.doc('115309562732908784445')
.collection('user_activities')
.where('userGroupIDs', arrayContains: 'IIPwobuR3YLrOoLH3TeS')
.ge
我很好奇,是否有人知道,或者可以猜测,谷歌Firestore使用的数据结构是按每个字段索引任意NoSQL文档的。我希望建立类似的东西,使其尽可能有效
有关其默认索引如何工作的一些信息:
默认情况下,所有字段都编制了索引,但仅适用于相等搜索,不适用于范围()
任何范围搜索都需要额外的索引
资料来源:
这不太可能是每个字段的标准btree索引,因为范围搜索可以在不添加其他索引要求的情况下工作。另外,如果您添加了一个新字段(易于文档存储),那么构建包含数十亿项的索引和集合将需要时间
一个理论是:每
如何确保仅在客户端对多个文档进行原子写入?
例如,在创建记录时,会生成一个记录文档,同时还会生成一个记录日志文档(两个不同的位置)
我不希望用户通过只创建记录文档而不创建记录日志文档来覆盖。使用当前firestore安全规则是否可能做到这一点?使用getAfter()函数查看文档在写入一次或一组写入后的状态。您可以使用此选项确保另一文档中的值已更新,例如:
service cloud.firestore {
match /databases/{database}/documents {
我是Firestore的新手,所以我有一个配置文件和用户集合。在CloudFireStore控制台中,当我单击数据库>Firestore>数据选项卡>配置文件或>用户时,控制台正在读取每个集合中的所有文档。这些读取在“使用”选项卡中计数。因此,我的问题是,如果我在Profiles集合中有500K个文档,并且点击了数据,那么我只需阅读前25个文档,就需要支付阅读500K个文档的费用。只需单击数据选项卡,控制台就会读取第一个集合的所有文档
我尝试使用过滤器,但要使用它,您必须先单击集合并阅读所有文档
我想设置我的Cloud Firestore数据库权限,以便除了通过云函数之外,没有人能够从中读写
我该怎么做
根据Firestore文档,我的猜测是我必须为我想要的东西设置正确的条件,但会是什么条件呢?我不知道如何将云函数调用与规则进行通信
service cloud.firestore {
match /databases/{database}/documents {
match /<some_path>/ {
allow read, write: if &
我的问题是,在这些限制之后,云firestore会拒绝或重新排队请求吗
Maximum concurrent connections 1,000,000
Maximum writes per second per database 10,000
当您达到这些限制时,操作就会失败。除了Firestore中已经存在的重试机制之外,没有专门针对这些限制的排队和重试操作的机制,例如由于网络连接错误导致的基本写入失败。但是,如果您执行的是一个批处理操作,它遇到了失败,那么不管错误的原因是什么,都没有内置
考虑一个集合X。其中包含多个文档。有一个字段Y,它是一个数组。
我需要获取包含[“val1”、“val2”]的所有文档
字段Y最多可以包含40到60个值(可能有1000000个值)
由于firestore只允许使用arrary contains搜索1个值,因此可能的替代方案是什么。
我已经通过了-
但在我的情况下,因为不同的名称超过100万个,我会超过200个最大索引限制你的问题是什么?请将问题编辑清楚。如果你问是否可以超过Firestore限制,那是不可能的(否则,它们就不是限制,对吧?)。
我正在使用支付处理系统进行测试,每次交易完成时,支付处理程序都会向我的端点发送一个包含支付详细信息的POST请求,以便我可以将其保存到我的数据库(Firestore)中
唯一的问题是函数在第一次尝试时失败。我的意思是,假设客户付款,支付处理器点击我的云功能,它无法保存到我的数据库。根据我的观察,当第二位客户在一分钟、5分钟甚至18分钟后进行交易时,一切都按预期进行
我是否面临冷启动问题或正在发生的情况。我该如何解决这个问题
这是我的功能
exports.stkCallback=functions
我的每日配额刚刚重置,所以我想现在是时候在Firestore用户界面上,通过检索文档来了解读取量了
我有11个文档,每个文档都有3个子集合(其中有一定数量的文档),加上1个没有子集合的虚拟文档,连接到firestore UI时,我可以读取36次(打开1个文档,关闭其子集合)
我认为它是一个读取/检索的文档,而不考虑子集合
36读到这怎么可能?这是否意味着我的12份文件会被阅读3次
以下是我的数据结构:
myCollection: {
$docId: {
data:myDate
Firestore文档说:
只有服务器客户端库支持在写入操作之后执行读取操作的事务
然而,当使用4.7.2在写作后阅读时,我得到:
错误:Firestore事务要求在之前执行所有读取
都写了。
在Transaction.get(/workspace/node_modules/@googlecloud/firestore/build/src/Transaction.js:76:19)
是否支持在服务器库上编写后阅读?您使用的是节点客户端软件包,还是节点管理软件包?我意识到我的package.jso
重构我的代码,我更新到
dependencies:
flutter:
sdk: flutter
firebase_core: ^1.2.0
firebase_auth: ^1.2.0
cloud_firestore: ^2.2.0
cloud_functions: ^1.1.0
...
e、 g.cloud_firestore从1.0.4到2.2.0
我有一个用户类
import'包:cloud_firestore/cloud_firestore.dart';
我正在用此代码更新我的文档
Future<void> save() async {
print('league save');
final DocumentReference ref =
Firestore.instance.collection('leagues').document(_documentName);
Firestore.instance.runTransaction((Transaction tx) async {
DocumentSnapsh
我在一个Java项目上使用Google的Firebase,我试图让Travis CI在我的存储库上工作
问题是:如何将.json键放入Travis CI服务器内的环境变量中访问数据库
我知道如何在Travis CI中设置环境变量,问题是如何设置完整的.json文件?也许你不知道?相反,将json文件中的各种值放入各个变量中,然后作为CI过程的一部分生成json文件。我已经想到的一个问题是Firestore的Java库搜索一个名为GOOGLE_APPLICATION_CREDENTIALS的特定环
我只是想确保我正确理解自定义声明,下面是一个我希望如何使用它们的示例:在我的应用程序中,我将每个用户关联到一个唯一的用户友好用户id(如“Bill”),我的一些安全规则使用此id。用户信息和配置文件存储在文档/users/{user}其中我还存储了相应的Firestore身份验证id
例如:在我拥有的文档/用户/账单中
{ firstname: "William"
lastname: "Clinton"
...
userid: "Bill" //
经过一些努力,我现在有了我的Firestore模拟器设置和使用mocha编写的第一个测试!太好了
我知道不可能一步一步地调试安全规则,但有没有办法直接从安全规则将信息或状态记录到控制台?我相信安全规则中有一个未记录的函数,允许您在本地仿真器上运行时将调试值写入日志。尝试debug()函数。它需要记录一个具有值的参数,并返回相同的值以继续对表达式求值
match /users/{id} {
allow read: if debug(id) == request.auth.uid;
}
这
我一直在firestore的一个项目中工作,在我开始的时候,我选择了firestore的测试模式,这显然给了你30天的“试用期”,之后我必须更改安全性内容,但我已经在我的firestore中对所有收集数据和其他功能进行了编程。如果我在这30天的“试用期”安全部分添加一行代码,我将更改安全规则,以避免丢失数据库,正常规则如下:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
我在这里创建了这个规则:
match /Users/{document} {
// function
function isUpdatingTradeURL() {
return request.resource.data.keys().hasAll(['userSteamTradePartnerID', 'userSteamTradeToken', 'userSteamTradeVerified'])
&& request
我正在尝试做一些类似iOS notes应用程序的东西,只是为了记录日志;基本上,我希望有一个日志条目单元格列表,用户可以在其中滚动,每个单元格在单击后显示一个详细视图,用户可以在其中查看和编辑日志条目。更新工作正常,唯一的问题是JournalDetailView在调用updateEntry()后(在用户点击“完成”按钮后)自动解除。我猜这是因为updateEntry()强制重新加载视图,但我不确定如何解决这个问题
模型如下:
struct JournalEntry: Identifiable,
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 20 页