firebase 3/AngularFire 2 在尝试设置 firebase 时无法捕获错误

firebase 3/AngularFire 2 cannot catch error when trying to set firebase

Firebase v3.2.1 角火 2.0.1

我尝试设置 firebase,但出现此错误:

Error: Firebase.set failed: First argument contains undefined in property 'products.xxx.longDescFR'

但我无法捕捉到错误,没有显示控制台日志!

firebase.database().ref('products').set(productList).then(function(ref) {
      console.log(ref)
    }).catch(function(error) {
      console.log('Failed: ' + error);
    });

知道如何实现 reject/fail 承诺吗?

查克

catch() 子句在服务器上写入失败时调用,因此当安全规则拒绝操作时。

当您传入 undefined 时,客户端上的操作已经失败。你可能 try catch 它,但最好只是检测 undefined 而不是写:

if (productList) {
    firebase.database().ref('products').set(productList).then(function(ref) {
      console.log(ref)
    }).catch(function(error) {
      console.log('Failed: ' + error);
    });
}