【发布时间】:2017-12-09 01:43:23
【问题描述】:
我从一个角度应用程序调用,使用 angularfire2,this.afDb.database 是数据库实例
const downloadsRef = this.afDb.database.ref('research_reports-published/' + rrid + '/' + field);
downloadsRef.transaction(function(fieldval) {
if (fieldval) {
fieldval = fieldval + 1;
}
return fieldval;
},
function(error, committed, snapshot) {
if (error) {
console.log('Transaction failed abnormally!', error);
} else if (!committed) {
console.log('We aborted the transaction (because ada already exists).');
} else {
console.log('User ada added!');
}
console.log('Adas data: ', snapshot.val());
}).then(function() {
console.log('Transaction successfully committed!');
}).catch(function(error) {
console.log('Transaction failed: ', error);
});
代码只是静默打印
Adas data: oldvalue
Transaction successfully committed
然后退出
【问题讨论】:
-
你看到的行为有什么问题?
-
没有任何更新。我期待后端增加一个数据库查询
'research_reports-published/' + rrid + '/' + field -
我添加了第二个回调,它打印
Adas data: oldvalue,我该怎么做? -
请使用更新后的代码和输出更新您的问题。但请注意,您不必添加额外的回调,
committed和snapshot已经传递到您拥有的then()回调中。事实上,我什至不确定你是否可以同时传递回调和使用承诺。我从未尝试过。
标签: javascript angular firebase firebase-realtime-database angularfire2