我是firestore的新手,不知道是否有人能告诉我这种解决方案是否适用于多对多关系。我有一个名册和学生的集合,这是多对多相关的。由于我最经常需要的关于学生的信息仅仅是他们的名字,是否可以在名册中存储一张学生地图,如{:“学生姓名”},因此如果我想检索名册中关于学生的更详细信息,我检索地图的键并遍历它们以分别检索每个学生的文档
我的解决方案是基于
我将非常感谢任何建议!谢谢您更新此功能,它工作正常。以下是我的云函数代码,用于在将来有人需要时更新运动员姓名:
export const onUser
Firestore(网络)
帮助我根据ID编写随机文档请求
我可以在不获取全部收藏的情况下完成此操作吗
const questions=[];
const docRef=db.collection('ru')。doc(category)。collection('questions');
试一试{
const doc=await docRef.get();
文件格式((项目)=>{
问题。推送(item.data());
});
}捕获(e){
投掷e;
}您应该编写一些代码来展示您的尝试。听
想知道处理上传到firestore DB的失败/部分数据的标准/最佳做法是什么(如果有)
例如,假设用户需要通过以下方式上传到两个不同的集合
let res = undefined
let docID = firebase.auth().currentUser.uid
try {
res = await firebase.firestore().collection('someCollection')
.doc(docID)
.set(someData)
我有一个带有存储触发器的云函数,我知道我需要返回承诺以正确结束我所做的函数,但我仍然在控制台中收到警告:“函数返回了未定义的、预期的承诺或值”
你实际上没有从你的函数中返回承诺。将关键字return放在db.collection(…)之前
exports.elementChange = functions.storage.object().onFinalize((object) => {
var element = {
name: object.name,
我正在尝试通过本地终端部署云功能。为此,我使用以下代码:
gcloud beta functions deploy networkcheck \
--region=europe-west1 \
--project=project-id \
--entry-point functionName \
--trigger-event providers/cloud.firestore/eventTypes/document.write \
--trigger-resource pr
我们正在构建一个身份验证系统,该系统将会话的子集合存储在用户文档下,而用户文档又位于用户集合下
伪代码示例:
.set("users/{USER_ID}/sessions/{SESSION_ID}", sessionData)
是否可以在不首先创建父用户文档(具有User\u ID)的情况下上载新会话?是的,即使父文档不存在,也可以在嵌套路径上创建新文档
对于移动和web应用程序,您还可以使用安全规则来确保在允许新会话文档之前父用户ID存在
在我的项目中,我有firestore用户和类的集合。每个用户都可以是一个或多个类的一部分。类文档具有属性成员,该属性成员是一个数组,包含该类中的所有用户UID
例如:
users documents:
doc.id: USER1UID
{ name: 'user1', email: 'user1@user1.com', phone: '+123 456 789 001' }
doc.id: USER2UID
{ name: 'user2', email: 'user2@user2.com',
我有一个firebase功能:
//功能和firestore要求如下
exports.saveData=functions.https.onRequest(异步(req,res)=>{
console.log(“接收到的数据”)
const-busboy=new-busboy({headers:req.headers});
常量字段={}
常量上载={}
//推送字段中不是文件的字段
营业员.on('field',(fieldname,val)=>{
log(`Processed field$
我试图简化firestore安全规则及其在不同环境中的部署(prod/dev/test)。我遇到了最近添加的,看起来对我很有帮助,因为我可以通过编程创建和部署规则。然而,规则集和规则文件的概念非常混乱
特别是,部署多个规则集意味着什么?我从来不知道这一点,但当我运行admin.securityRules().listRulesetMetadata()时,我看到了一个包含100多个这样的规则集的列表。它支持回滚吗?如果是这样的话,人们怎么能这样做呢?最新部署的规则集是否始终是强制执行的,并且它覆盖
下面是一个场景:Onappear我的视图调用ObserveObject类的getData方法。在调试期间,我看到它检索数据并按预期返回数组。当我的视图出现在模拟器上时,数据在列表上短暂闪烁,然后列表变为空白。我在我的应用程序中的几个地方使用了相同的模式,在某些情况下它可以工作(列表显示为它应该的样子),而在其他情况下它变为空白
我正在13.0和13.3模拟器上进行测试,因为在其中一个模拟器上存在各种swiftUI错误。我认为这可能是因为对Firestore的异步调用,但我已经实现了完成处理程序。
我有这样的代码,可以从中获取新插入的文档id:
db.collection("cities").add({
name: "Tokyo",
country: "Japan"
})
.then(function(docRef) {
console.log("Document written with ID: ", docRef.id);
})
.catch(function(error) {
console.error("Error adding document: ", e
我正在尝试在我的社交媒体应用程序上实现一个阻塞功能。目前,其中一个提要查询按创建的时间戳按时间顺序对文档进行排序/排序
提议的解决办法
为了在苹果应用商店上发布,我们需要实现一个阻塞功能。我认为很简单,在用户文档中创建一个具有“blockedUsers”字符串数组的字段。现在,当您查询该字段时,使用Firestore支持的not in操作符,您可以获得以下文档列表:
不在blockedUsers数组中
按completedTimestamp排序
出于分页原因将限制为x
问题
但是,在阅读了中
在我的应用程序中,我有一个单一视图中的短音频文件列表。我想下载预下载音频列表中的前3项,这样用户就不用等待音频下载了。下载音频文件列表中的前三项并在这些文件之间提供无缝事务的好方法是什么
数据存储在Firebase存储器中,并使用以下代码获取:
@Published var fons = [Fon]()
init(fonId: String) {
fetchData(fonId: fonId)
}
func fetchData(fonId: String) {
Firesto
我在编写和测试Firestore规则时遇到了一个奇怪的问题。以下是我想要实现的目标:
当应用程序启动时,用户以匿名方式登录。这个
用户开始一个新游戏
我创建了一个“会话”,它基本上只包含一个时间戳
玩家玩游戏,获得一定的高分,然后进入屏幕,在那里分数可以发送到全球高分列表。当提交高分时,我检查是否存在该玩家的现有会话,以及所经过的时间是否足够长,以使高分被视为有效
在客户端(javascript)上,我使用以下行发送文档中的时间戳:
firebase.firestore.FieldValue
当Firestore设置最大并发连接数时,这是指活动连接,换句话说,是指活动移动数据的连接,还是指每个Firebase文档的并发订阅数:同时连接相当于连接到数据库的一个移动设备、浏览器选项卡或服务器应用
从这一点上我们可以看出,它根本不是基于数据,而是基于连接的来源
此处的文档:每个Firebase文档:同时连接相当于一个移动设备、浏览器选项卡或服务器应用程序连接到数据库
从这一点上我们可以看出,它根本不是基于数据,而是基于连接的来源
这里的文档:它指的是开放式客户端套接字连接的数量。这与文档和
我将在Google Play Store上发布我的应用程序,但在测试阶段(Alpha版本),我使用了以下规则:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// This rule allows anyone on the internet to view, edit, and delete
// all data in your Firesto
我正在建设一个房地产网站。由于不可能在同一时刻多次购买某个属性,因此我需要限制用户将该属性添加到购物车的次数。从图中可以看出,我一直在努力瞄准firestore中的propertyID
此外,在操作或减速机中,这种逻辑应该放在哪里?我在操作中尝试了Firestore.where(),还尝试了将逻辑放入减速机
您好,您能分享一下您已经尝试过的代码的结果吗?例如,您是否遇到任何错误,或者上面代码的结果是什么?
const propertyReducer = (state = initStat
从我的理解来看,如果一个集合有一个单调递增的索引字段,那么对该集合施加写限制。如果将该集合拆分为两个单独的集合,则每个集合都有自己的写入限制。但是,如果我们将该集合拆分为两个单独的集合,但赋予它们相同的名称(将它们放在不同的文档下),如果单调索引字段是同时查询它们的集合组查询的一部分,它们还会有自己的独立写限制吗?不,这不是它的工作方式。一个集合组查询,您所说的限制是索引本身的写入速率,而不是集合。每个集合都会自动为该特定集合的文档中的字段编制索引,但这不会应用跨集合的集合组查询
请注意,报告中
有人能指出我遗漏了什么吗?我有一个云函数(根据时间表触发),它执行以下代码:
const client = new firestore.v1.FirestoreAdminClient()
const projectId = process.env.GCP_PROJECT || process.env.GCLOUD_PROJECT
const databaseName = client.databasePath(projectId, '(default)')
return client.expor
我通常按如下方式启动模拟器:
firebase模拟器:开始--import=test/local dev--export-on-exit=test/local dev
目的:导入以前导出到本地dev文件夹的数据,并在emulator退出时保存所有数据
重新启动我的开发计算机(macOS Catalina)后,我无法再使用本地开发文件夹中的数据,因为仿真器无法使用此控制台输出启动:
firestore: Fatal error occurred:
Firestore Emulator has
我正在围绕FirebaseFirestore快照侦听器编写一个包装器,它使用RxKotlin Observable发出更改
我编写了以下类,该类使用create()方法创建可观察对象,并在新数据快照可用时异步发出更改
问题是,每次我创建这个类的实例并停止使用它时,我都会泄漏内存。重写这个类而不泄漏内存的最佳方法是什么
任何关于如何创建可以从侦听器发射对象的可观察对象的资源都将非常有用
class DocumentRepository<T : ModelWithMetadata>(
我有点嫉妒像Google Cloud Firestore这样的服务,它可以在移动应用程序(或web应用程序)和后端之间实现实时同步。它让我把普通的旧HTTP GET后端看作是史前的
我想知道,在2O19中,是否存在非常简单/可扩展的解决方案/框架,可以在我自己的后端实现这一点。
我听说过插座,但它看起来很昂贵,而且很难安装(也许我错了)。也许是无声通知?(但这又增加了管理的复杂性,我们不能100%相信每个通知都能达到目标)
我知道冲突是最敏感的话题,所以即使是只读解决方案(只有后端可以修改实体)
我正在尝试使用RESTAPI从Firestore获取数据。我无法编写structuredQuery来查询对象数组
用户数据如下所示:
{
"tokens": [{
"token": "123345",
"expiry": "2019-08-07T05:42:48.567Z"
},
{
"token": "345667",
"expiry": "2019-08-06T05:42:48.567Z"
}
我正在用Firestore后端制作一个Flitter应用程序
我想保存来自传感器读数的timeseries数据,如果可能的话,我想使用firestore数据库,因为我在其他方面都使用它。数据每分钟生成一次,有12个值和一个索引(计数秒)。稍后,我想在登录到同一帐户的任何手机上显示Flitter应用程序上的数据条形图
将有数千部手机上传数据
我这样写数据:
它以阵列形式存储在每个设备的阵列中
当我导航到数据库的firestore数据库页面时,显示该页面需要很长时间
我担心这是错误的方法。我理解,
我把生日作为时间戳存储在数据库中。现在我想在用户生日临近时创建一个fcm通知。我有一个每小时运行一次的函数来检查生日字段,但是我应该查询什么呢?在年份无关紧要的情况下,是否有一种奇特的方法来实现这一点
例如,1921年2月27日出生的人和1991年2月27日出生的人今天都有自己的生日。
但我不能一次查询100年,对吗?我还可以添加另一个字段,将生日另存为年份“0”,以便查询带有今天日期和年份“0”的时间戳。但是,我必须维护和更新第二个字段,因为我还需要保留年份以确定此人的年龄
有什么简单的解决方
有人知道为什么这样不行吗?我做错了什么。它在console.log“after read stream”之后被卡住
我正在尝试读取大量文件,将其转换为json,并使用bulkwriter将其上载到firestore。
在每400个文档之后,我都会调用close将它们写入firestore,然后我会创建一个新的bulkwriter
我还尝试等待bulkWriter.create(eventDoc,{}),但它不起作用。它也会卡住,没有错误。为什么会这样?create方法返回一个承诺。
为什么不能等
我想根据电子邮件地址创建“邀请”,这样当收到该电子邮件的用户到达系统时,他的邀请就已经在等待他了
因此,我想基于groupId+''''''+invested\u user\u email创建一个带有key的邀请集合,但是如果用户是test@test.com此.com被解释为子键:(
我尝试了groupId+'\'+邀请用户\u电子邮件。替换(/[.]/g,'\\.'),但也没有帮助
我遗漏了什么?是否无法在firestore文档的ID中包含“.”
编辑:
根据Doug Stevenson的要求
我刚刚开始使用像firestore这样的noSQL数据库,并希望了解如何在使用firestore安全规则在第二个集合中创建文档后,从一个集合中增加文档字段
js代码
collection('some_collections').add({name: 'name', anotherId: 'abc' })
.then(() => {
collection.('another_collections').doc('abc')
.update({counter: FieldValu
首先,这不是一个常规问题。有点复杂
应用程序摘要
firestore db中存在一个配方应用程序,用户可以通过选定的配料集合配料搜索配方。我想为每种配料存储统计数据,用户用所选配料搜索了多少,以便稍后我可以向他们显示他们主要用于搜索食谱的顶级配料
我的收藏是这样的:
现在我想通过创建登录用户的统计数据来订购食谱
first = firebaseHelper
.getDb()
.collection(Constants
我正在开发一个使用满足感的动作。我正在使用内联编辑器。我正在将硬编码的值移动到FireStore中,以便数据存储在函数本身中。FireStore请求没有按预期进行:尽管实现调用没有失败,但它没有找到它应该提供的信息。我正在尝试使用旧的控制台。log键入日志,试图找出哪里出了问题。但是这些日志消息不会显示在任何地方
我查看了函数的Firebase日志,但它只包含基本事件:执行开始、完成和警告
我还升级了操作,将其附加到付款计划项目,并启用了Stackdriver日志记录。这也没有显示我的自定义日
我正在构建一个生成购买账单的应用程序。现在我将票据存储为票据-(收款)--
bill1(doc)问题是账单生成的频率更高,所以如果我存储了数以万亿计的单据,我可以高效地查询它吗?该模型是否高效且可扩展?或者我应该使用user(collection)-user1(doc)-userBills(subcollection)-billone(doc)Firestore并不真正关心您在一个集合中存储了多少文档。它可以大规模扩展,无论集合的大小如何,对N个文档的查询总是同样高效。尽可能方便您的查询。谢谢!
如何设置用户每天可以创建的帖子“文档”限制,例如,我想设置每天5篇帖子的限制,那么是否有类似以下规则:
match /Post/{id} {
allow create: if ........
&& getAfter(/databases/$(database)/documents/Post/$(id))*LAST 5*".data.createdDate <= 24H....
}
match/Post/{id}{
允许创建:如果。。。。。。。。
NoSQL新手(来自关系数据库世界),正在寻找最佳实践建议
在使用firestore时,我是否应该(更快/减少读取次数)根据用户ID过滤集合,还是应该使用用户ID创建根集合,并为该特定用户的不同数据创建子集合
例如
(1) 我是否应该将所有用户数据插入“订阅(col)->(doc)->”(字段,包括用户ID)。在我的read中,我使用where子句根据userId筛选出集合中的数据
.收款(“认购”)
.WhereEqualsTo(“作者”,_auth.GetCurrentUserId())
Firebase数据库根据其文档提供了10 MB的脱机数据库缓存限制,但未提及Firestore数据库的脱机数据限制
Firestore的离线数据保存限制是多少 根据Firebase支持团队的回答
-
到目前为止,Firestore的缓存数据大小没有限制,但是,这是一个已知的问题。
我们打算在Firestore上实现此功能,但无法提供何时发布此功能的时间表
因此,目前Firestore的离线存储没有限制
邮件中的支持票证响应已在此处附上其屏幕截图的链接,请检查-photos.app.goo.gl
我正在尝试从angular firestore中的嵌套集合获取数据。
然而,它总是给我空数组,不管它有什么数据。
我读过一些文章说firestore没有这个功能。
那么我应该如何从嵌套集合中获取数据呢。
我想从嵌套集合中获取所有文档。请确保为嵌套集合创建适当的规则,因为嵌套集合的工作方式与根集合完全相同请参考此获取嵌套集合,如果您可以共享错误或代码,您将尝试执行哪些操作,这样会更容易获得所需的帮助
我正在存储被阻止用户的文档集合。
我通过检查被阻止的收集中是否存在电子邮件来检查请求是否来自被阻止的用户
allow read: if exists(/databases/$(database)/documents/blocked/$(request.auth.token.email)) == false;
检查文档是否存在是否算作已读?是,exists()算作对账单的已读。它们也会计入。那么exits()不算作已读,它是在已经使用get()读取的文档上调用的,一旦读取了文档,您可以随时调用e
根据不同的StackOverflow,我们可以使用以下方法生成随机Firestore ID:
String id = db.collection("collection_name").document().getId();
运行此代码会对实际的Firestore数据库产生任何影响吗
例如,假设我们将代码运行100000次以上,以获得100000个可供以后选择使用的唯一ID,并将这些ID存储在列表中-如果我们不采取任何进一步的行动,会对Firestore产生任何影响吗
用例是稍后通过将添加到Fi
我担心这很简单,我只是没有找到合适的资源来回答我的问题
我的应用程序有一个简单的注册表,可以收集一些数据并在云Firestore中创建一个用户文档
username: "testuser@email.com"
favoritecolor: "blue"
favoritefood: "pizza"
是否有一种方法可以通过云消息传递将文档中存储的信息用于特定的组?例如,如果我想向喜欢比萨饼和蓝色的用户发送推送通知。我知道向用户订阅主题是可行的,但我想知道是否还有其他方法。查看文档?有一个表“关键功
我有一张收款单,有这样的结构
dishname :
"Biryani"
dishprice:
"350"
dishquantity:
"1"
hotelemail:
"apk@gmail.com"
hotelname :
"Apk"
time
April 13, 2020 at 2:51:11 PM UTC+5
useremail
"checking@gmail.com"
username
"pasha"
usernum
"03416889912"
o
我目前正在尝试使用流提供者来注意云Firestore数据库中的变化,并获取关于变化的新数据
以下是我创建流提供程序的方式:
child: StreamProvider.value(value: _firestoreAPI.getProjectsFromStream(_savedUser.user.name),child: PrimaryScene(toggleAnimation)),
由于我无法从initstate调用提供程序…因此我调用的是内部构建:
_projectListSnapshot
我想创建两个带有分页选项的查询。第一个我想得到前十条记录,第二个我想得到其他所有记录:
.startAt(0)
.limit(10)
.startAt(9)
.limit(null)
有人能确认上述代码对这两种情况都正确吗?Firestore不支持基于索引或偏移量的分页。您的查询将无法处理这些值
请仔细阅读报告。分页要求您提供定义要查询的下一页的文档引用(或该文档中的字段值)。这意味着您的分页通常从查询结果的开头开始,然后使用上一页中看到的最后一个文档进行分页。如Doug所述,Firesto
在中,它在
对文档ID的限制
它的长度必须不超过1500字节,并且刚好低于我们的长度
文档名称的最大大小
长度不得超过6千磅
我在文档中没有发现文档ID和文档名称之间的任何区别,我认为文档ID和文档名称是相同的,但是上面的引用是相互冲突的。是的,确实是混淆的,隐藏在文档中。但我能在尺寸计算网站上找到它
简而言之,文档名基本上是路径的大小+文档id+16个额外字节。而文档id是标识集合中每个文档的id。因此,您不能手动设置文档名,它是自动生成的
在大多数情况下,这应该不是问题,除非您有一个非常嵌套
在我的职能中,我有以下几点:
await admin.firestore()
.collection("development")
.doc("development")
.collection("users")
.doc(userId)
.collection("tokens")
.doc("{autoId}")
.set(token, {merge: true});
我正在把一个Android应用程序改成Netflix。(显示项目的转盘列表)。
我的数据库是firebase平台中的云Firestore
这是我用来按日期描述或asc排序的类别显示项目的结构
{
name: "Item",
categories: {
catId1: true,
catId2: true,
catId3: true
}
}
我遇到的问题是,我在那里看不到任何项目,因为我需要为每个catId创建索引(这对我来说毫无意义),而且最重要的是,我需要
如何设置要添加的帖子的id?我以为getItemNextKey()会返回为帖子分配的id,但事实并非如此
AddItem(数据,下载URL){
data.id=this.getItemNextKey();//持久化文档id
data.upload=下载URL;
//log('this.uploadService.downloadURL:'+downloadURL);
//console.log('data.upload:'+data.upload);
此.db.collection('item
firebase/firestore规则模拟器是否考虑了现有的实际集合?例如,我有一个名为“users”的集合和规则
match /users/{uniq_username} {
// let authed users create new uniq names
allow create: if request.auth != null
&& !exists(/databases/$(database)
我正在考虑将Google Cloud Firestore用于多租户应用程序
我浏览了这一页,其中给出了有关规模的建议:
本页还显示了以下限制:
我提出了这个解决方案,它可以使应用程序的性能和恢复力得到改善,而成本最低,甚至不增加
解决方案:我可以为应用程序中的每个多租户集合使用不同的集合,如:products_1、orders_1、products_2、orders_2
我想使用它,因为:
1-它将有更好的性能,因为我将有更小的表/索引。否则,从长远来看,它可能包含太多的文档
2-这是可行的,因
我是Firebase的新手,我正在开发一个firestore应用程序,它的工作原理有点像一个考勤程序。教师和学生都可以使用它,但只有教师才能看到学生的数据。学生必须登录才能拥有uid,当他们“参加”一个课程时,将创建一个以uid为名称的节点,其中的字段包含他们的名称、studentID等。树的形状如下所示,教师当然可以访问他们的所有孩子:
teachers/{teacherID}/classes/{classID}/students/{studentID}
(我知道这不是很肤浅,但它使基于课堂
我尝试使用以下代码创建文档,并在运行ref.set()函数时得到“Error:4 DEADLINE\u extended:DEADLINE extended”。我使用的是“ws”和“fastfy”,处理的套接字数量很少(100-150)。最初几天内不会出现此错误。它将在服务器上重新启动进程4-5天后出现
create: async (id) => {
//store socket
return await socketRef.doc(id).set({ id: id
如果相关的安全规则设置为:
match /{path=**}/private/{document} {
allow read: if request.auth.uid in resource.data.members;
}
但是,下面的类似规则阻止意外执行相同的查询
match /{path=**}/private/allowed {
allow read: if request.auth.uid in resource.data.members;
}
在这个数据库中
privat
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 20 页