这周我一直在开发一个简单的应用程序来学习如何使用Firestore,并且我一直在关注配额页面上的api调用。整个星期,我几乎没有使用400个电话,但今天突然报告了超过50000个。现在,我的Firestore只有2个集合,其中一个集合只有8个文档。所以数据不是很多。我的应用程序仍然非常原始,只能在其中之一中收集和添加/更新文档。我提到所有这些都是为了解释我的应用程序不会做太多事情,所以当我看到它的用法时,我感到非常惊讶。
我开始深入研究各个调用,并注意到当我执行单个调用时:
let db = fire.firestore();
db.collection("tags").get()
.then( snapshot => {
console.log(snapshot);
})
.catch( error => {
console.log(error);
})Cloud Firestore API调用计数器增加了3。没有自定义函数,也没有数据库规则
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read: if request.auth.uid != null;
allow write: if request.auth.uid != null;
}
}
}我还没有考虑过创建/更新文档,但是有人知道为什么这个get()会被算作3个api调用吗?
发布于 2018-12-12 23:14:33
免责声明:
我并不是说这解决了你访问50,000+应用程序接口调用的问题,而是说这很可能是你在这个配额内遇到的问题。
通过Firestore的控制台查看和编辑您的项目数据将计入您的总
Cloud Firestore API Calls配额。
再说一次,你可能不会觉得这有帮助,但更多的时候,用户会在观察数据变化的同时测试他们的应用程序(无论是运行身份验证,为字段写新值,还是云函数)。这将导致不一致的配额增加,因为你本质上是同时在两个地方读/写。
我建议通过观察应用程序的only来尝试这一点,日志语句最好地描述了发生的过程。如果你仍然看到奇怪的配额增加,不幸的是它驻留在你的代码中,而不是谷歌。希望这能有所帮助!
发布于 2018-10-15 22:35:19
如果安全规则是原因,只需尝试以下安全规则,直到应用程序处于开发过程中:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}https://stackoverflow.com/questions/52783292
复制相似问题