将数据添加到 firebase 时如何在 Angularfire 上未发送数据时捕获错误?
How to Catch Error When Data is not Sent on Angularfire when adding data to firebase?
我正在使用 angularfire 将数据保存到我的 firebase 中。这是一个快速代码。
$scope.users.$add({
Name:$scope.username,
Age:$scope.newage,
Contact: $scope.newcontact,
});
alert('Saved to firebase');
我已成功将这些数据发送到我的 firebase,但是如果这些数据未成功保存,我该如何捕获错误?有什么想法吗?
编辑
所以在执行 then() 函数之后。
$scope.users.$add({
Name:'Frank',
Age:'20',
Contact: $scope.newcontact,
}).then(function(ref) {
alert('Saved.');
}).catch(function(error) {
console.error(error); //or
console.log(error);
alert('Not Saved.');
});
连接到互联网时。 then() 函数很好。在显示警报之前,它会等待这些数据保存在 firebase 中。
我想要的是它告诉我数据没有保存。当我关闭互联网连接并提交这些数据时,捕捉错误功能没有触发。
当您称 $add()
为 returns 承诺时。要检测数据何时保存,请实施 then()
。要检测保存失败的时间,请执行 catch()
:
var list = $firebaseArray(ref);
list.$add({ foo: "bar" }).then(function(ref) {
var id = ref.key;
console.log("added record with id " + id);
list.$indexFor(id); // returns location in the array
}).catch(function(error) {
console.error(error);
});
更新
当涉及到 Firebase 数据库时,检测何时由于没有网络连接而无法保存数据是一个非常不同的问题。在这种情况下无法保存不是错误,而只是一种临时情况。此条件不仅适用于此 set()
操作,而且适用于所有 read/write 操作。因此,您应该更全面地处理它,通过 detecting connection state:
var connectedRef = firebase.database().ref(".info/connected");
connectedRef.on("value", function(snap) {
if (snap.val() === true) {
alert("connected");
} else {
alert("not connected");
}
});
通过侦听.info/connected
您的代码可以知道用户未连接到 Firebase 数据库并根据您的应用程序的需要进行处理。
我正在使用 angularfire 将数据保存到我的 firebase 中。这是一个快速代码。
$scope.users.$add({
Name:$scope.username,
Age:$scope.newage,
Contact: $scope.newcontact,
});
alert('Saved to firebase');
我已成功将这些数据发送到我的 firebase,但是如果这些数据未成功保存,我该如何捕获错误?有什么想法吗?
编辑
所以在执行 then() 函数之后。
$scope.users.$add({
Name:'Frank',
Age:'20',
Contact: $scope.newcontact,
}).then(function(ref) {
alert('Saved.');
}).catch(function(error) {
console.error(error); //or
console.log(error);
alert('Not Saved.');
});
连接到互联网时。 then() 函数很好。在显示警报之前,它会等待这些数据保存在 firebase 中。 我想要的是它告诉我数据没有保存。当我关闭互联网连接并提交这些数据时,捕捉错误功能没有触发。
当您称 $add()
为 returns 承诺时。要检测数据何时保存,请实施 then()
。要检测保存失败的时间,请执行 catch()
:
var list = $firebaseArray(ref);
list.$add({ foo: "bar" }).then(function(ref) {
var id = ref.key;
console.log("added record with id " + id);
list.$indexFor(id); // returns location in the array
}).catch(function(error) {
console.error(error);
});
更新
当涉及到 Firebase 数据库时,检测何时由于没有网络连接而无法保存数据是一个非常不同的问题。在这种情况下无法保存不是错误,而只是一种临时情况。此条件不仅适用于此 set()
操作,而且适用于所有 read/write 操作。因此,您应该更全面地处理它,通过 detecting connection state:
var connectedRef = firebase.database().ref(".info/connected");
connectedRef.on("value", function(snap) {
if (snap.val() === true) {
alert("connected");
} else {
alert("not connected");
}
});
通过侦听.info/connected
您的代码可以知道用户未连接到 Firebase 数据库并根据您的应用程序的需要进行处理。