FireBase 与 angularFire 的事务

标签 firebase angularfire

我在我的应用程序中使用 AngularJS 和 FireBase。我喜欢使用 angularFire 将 FireBase 对象引用绑定(bind)到 Angular 作用域,但是如果我想在事务中执行绑定(bind)作用域对象的更新 - 我必须创建一个新的 FireBase 引用,这会破坏使用 angularFire 的所有优点并增加由于有两个引用指向同一个 FireBase 对象,因此存在潜在问题:

        angularFire(travelBidsFirebaseRef + "/auction/" + $scope.auctionId, $scope, 'auction', {})
        .then(function(disassociate) {
                $scope.auctionRef = travelBidsFirebaseRef.child('auction/' + $scope.auction.id);
        ...

                $scope.auctionRef.transaction(function(auction) {
                    auction.price = Math.round((auction.price + 0.01) * 100)/100;
                });
        ...
        }

有没有办法使用 angularFire 绑定(bind)范围对象来执行事务?

最佳答案

AngularFire 将接受 firebaseRef 作为第一个参数,因此推荐的方法是使用它来执行事务:

var ref = new Firebase("https://my-firebase.firebaseio.com/auction/" + $scope.auctionId);
angularFire(ref, $scope, "auction", {}).then(function() {
  ref.transaction(function(auction) {
    auction.price = ...
  });
});

关于FireBase 与 angularFire 的事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18178109/

相关文章:

node.js - Firebase Firestore 不适用于 Angular 10 和 SSR 或预渲染

javascript - Firebase:连接表

angular - 升级到 firebase js sdk v8 后,在 'firestore' 中找不到导出 'firebase'(导入为 'firebase')

javascript - 使用 AngularFire 简化 Angular Controller 发布到 Firebase

android - 如何在 Firebase 云消息传递 (FCM) 中使用深度链接

swift - Firebase : Read-only & non-realtime mode activated, 如何在控制台上添加子节点

javascript - Firebase 安全 : Permission Denied Until Page Refresh

javascript - 保存并获取 Firebase 集合中项目的 $priority AngularFire 0.6.0

javascript - 传递 key 会导致我的 firebase URL 中出现多余字符,如何删除它们?

安卓——火力地堡;登录时,检索数据(分层)并根据该数据重定向该用户