【发布时间】:2018-11-28 04:07:33
【问题描述】:
在使用 Firebase 时,我通常使用 AngularFire2。但是这次我没有,我使用了普通的 Firebase 库,因为当我检查 AngularFire2 上的文档以了解我需要的事务的使用情况时,我没有找到它。
使用普通的 Firebase 库时,我遇到了这个错误,表示事务未提交,但数据仍保存到 Firebase。 谁能指出我犯的错误?
这是我的代码:
saveSeats(key, numbers){
for (let i = 0; i < numbers.length; i++) {
const num = numbers[i].toString();
const objPath = `${this.basePath}/${key}/${num}`;
const busesRef = firebase.database().ref("buses/"+key+"/"+num);
busesRef.transaction(function(currentValue) {
if (currentValue === null) {
let newRow = JSON.stringify({ number: num, status: "reserved", timestamp: Date.now() });
busesRef.child("0").set(newRow);
} else {
console.log('Value Already Exists');
}
}, function(error, committed, snapshot) {
if (error) {
console.log('Transaction failed abnormally!', error);
}else if (!committed) {
console.log('We aborted the transaction (because number already exists).');
} else {
console.log('Number added!');
}
console.log("Number: ", snapshot.val());
});
}
}
【问题讨论】:
标签: angular firebase firebase-realtime-database angularfire2 angular7