【问题标题】:Detect firestore errors检测 Firestore 错误
【发布时间】:2020-08-28 07:05:00
【问题描述】:

所以我想要一种能够在我的 javascript 代码中检测到此错误的方法

@firebase/firestore:Firestore (7.19.1):FirebaseError:[code=resource-exhausted]:超出配额。

我在控制台中看到它,但是在 try 和 then 中都无法获取它:/

try {
  // Your web app's Firebase configuration
  var firebaseConfig = {
    apiKey: "****VHhbGqI",
    authDomain: "****m-sum-235202.firebaseapp.com",
    databaseURL: "https://**'' '' m-sum-235202.firebaseio.com",
    projectId: "premium-sum-235202",
    storageBucket: "***'' '' 02.appspot.com",
    messagingSenderId: "428499848193",
    appId: "1:*******8193:web:520bc61504450a2e458400"
  };
  // Initialize Firebase
  firebase.initializeApp(firebaseConfig);
console.log('daq')

console.log('daq2')
firebase.firestore().collection('testf').doc('test1').set({"zack9": firebase.firestore.FieldValue.increment(1)} , {merge: true }).then((data) => { alert(data) }).catch((error) => { alert('te') })
console.log('daq9')
} catch(error) {
console.log('daqaa')
console.log(error)
}

// tried this too

async function zack () {
try {
  // Your web app's Firebase configuration
  var firebaseConfig = {
    apiKey: "×**'' *****BHuNxsY5VHhbGqI",
    authDomain: "*'' '' '202.firebaseapp.com",
    databaseURL: "https://***' '' eio.com",
    projectId: "*****sum-235202",
    storageBucket: "**'*' '202.appspot.com",
    messagingSenderId: "**' *848193",
    appId: "1:428499848193:web:****20bc61504450a2e458400"
  };
  // Initialize Firebase
  firebase.initializeApp(firebaseConfig);
console.log('daq')

console.log('daq2')
await firebase.firestore().collection('test').doc('test1').set({"zack9": firebase.firestore.FieldValue.increment(1)} , {merge: true })
console.log('daq9')
} catch(error) {
console.log('daqaa')
console.log(error)
}
}
zack()

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

    很遗憾,无法通过代码跟踪与配额相关的错误。如官方文档中所述,与定价相关 - 可访问 here - 如您所述,此信息只能通过控制台获得,您可以在控制台跟踪已使用的配额量。

    考虑到您遇到了超出配额的错误,我建议您尝试限制您将对数据库执行的读写操作 - 实际上,您需要限制定价中的任何点这可能会导致您出现此错误 - 因此您可以避免此类错误。有很多方法可以实现,比如使用limit()方法来限制你的调用,你可以执行更具体的查询来返回更少的结果,更准确的返回信息等等。我建议你看看本教程here,关于这方面的好例子。

    除此之外,您还可以随时在Google's Issue Tracker 上创建功能请求,以便将来实施此功能。

    【讨论】:

    • 很伤心,我知道我是如何处理数据的,而且我很少会达到配额,这只是我想在我的网络应用程序上设置的东西(显示一条消息,如“请再次检查我们24 小时”)好吧,我想我将不得不编辑该 firebase-firestore.js 并在有配额时更改我的状态 js 文件,这不应该违反 TOS 对吗?
    • 嗨@ZackHeisenberg 当然,我明白你的意思。我确实认为提出功能请求是值得的,因为这样会很好。除此之外,这是一个很好的问题,如果它违反 TOS。我建议您查看条款here,以确认。
    猜你喜欢
    • 2021-05-26
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    • 2019-09-16
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    相关资源
    最近更新 更多