代码之家  ›  专栏  ›  技术社区  ›  DeveloperKurt

Firebase在Nodejs中处理事务

  •  0
  • DeveloperKurt  · 技术社区  · 7 年前

    Firebase已经记录了如何使用Java而不是NodeJ处理事务( document

    由于它的结构,事务在第一次运行时可能返回null,并且与Java不同,Nodejs没有getValue()。事务返回的是值本身。那么,如何将上述结构应用于Nodejs呢?

    在我的代码中,数据可能为null,如果是这种情况,则必须将计数设置为1。但当我得到“假空值”时,我不知道该怎么办。

     admin.database().ref(`/matches/${uid}/${matchUID}`)
                                    .transaction(current => {
    
                                        if (current === null) {                      
                                            userMatchesRef.child(matchUID).set(1);
                                        }
                                        else {                                     
               userMatchesRef.child(matchUID).set(current + 1);
    
                                        }
                                    })
    
    2 回复  |  直到 7 年前
        2
  •  1
  •   Frank van Puffelen    7 年前

    Firebase数据库事务最初几乎总是由 null 对于 current 价值您需要处理这个问题,即使您知道该值不是 无效的 Firebase runTransaction not working - MutableData is null . 对于Java,同样的逻辑适用于所有Firebase SDK。

    有关在Node.js SDK中处理事务的Firebase文档,请参阅 https://firebase.google.com/docs/database/admin/save-data#section-transactions . 但是来自chris答案的链接也会起作用,因为Node.js和WebSDK在这方面的功能相同。