看起来我的Firestore请求受到限制! (见下图)
如果我不得不猜测,我会说这不是Firestore进行限制,它实际上是Chrome ......我之前见过这种限制。
解决Chrome限制的一种方法是将多个请求合并为一个。
当我坐在这里思考“我想知道Firestore是否可以结合这些读取请求?”时,我注意到,巧合的是,对Firestore的请求实际上被命名为batchGet!但奇怪的是,每个batchGet请求只有一个读取内容:
因此,为了避免Chrome的限制,我的问题是:如何在Firestore中同时请求多个文档?我怀疑这是可能的,因为有一个名为batchGet的服务器端点。有可能吗?
非常感谢!
答案 0 :(得分:0)
只是挖了一下源,看起来这是不可能的。 Transaction的.get()方法如下所示:
Transaction.prototype.get = function (documentRef) {
var _this = this;
validateExactNumberOfArgs('Transaction.get', arguments, 1);
var ref = validateReference('Transaction.get', documentRef, this._firestore);
return this._transaction
.lookup([ref._key])
.then(function (docs) {
if (!docs || docs.length !== 1) {
return fail('Mismatch in docs returned from document lookup.');
}
var doc = docs[0];
if (doc instanceof NoDocument) {
return new DocumentSnapshot(_this._firestore, ref._key, null, false);
}
return new DocumentSnapshot(_this._firestore, ref._key, doc, false);
});
};
那.lookup()获取要放入batchGet请求的所有文档的数组,并且它在这里被编码为只有该数组中的一个元素。
因此,看起来无法在一个batchGet请求中获取多个文档。