2017-03-13 22 views
2

firebaseデータベース関数に問題があります。 documentation contains the following minimal exampleは、トランザクションデータを操作するには:Firebase TypeError:ref.transactionは関数ではありません

var upvotesRef = db.ref("server/saving-data/fireblog/posts/-JRHTHaIs-jNPLXOQivY/upvotes"); 
upvotesRef.transaction(function (current_value) { 
    return (current_value || 0) + 1; 
}); 

さて、私のfirebaseデータベース構造は、以下の

/game-results 
    /RaUALJvTZVea5y6h1lzqGJPMpuI3 
     /distance 
     /score 
     /timestamp 
    /3ItAqKHL0XRUOum2Ajdz9hHQxMs1 
     /distance 
     /score 
     /timestamp 
/statistics 
    /total-distance 
    /total-score 

のように見えると私は合計得点と距離を合計したいと思います。 I total-distanceのために、ここで、次の関数を使用しています:

const functions = require('firebase-functions'); 

exports.updateTotalDistance = functions.database.ref('/game-results/{userId}/distance') 
    .onWrite(event => { 
     const newDistance = event.data.val(); 
     const distanceRef = functions.database.ref('/statistics/total-distance') 
     return distanceRef.transaction(function(currentDistance) { 
     console.log('currentDistance', currentDistance); 
      return (currentDistance || 0) + newDistance; 
     }); 
    }); 

しかし、私はfirebase機能ログに次のエラーを取得する理由のまわりで私の頭をラップすることはできません。

TypeError: distanceRef.transaction is not a function 
    at exports.updateTotalDistance.functions.database.ref.onWrite.event (/user_code/index.js:19:22) 
    at /user_code/node_modules/firebase-functions/lib/cloud-functions.js:35:20 
    at process._tickDomainCallback (internal/process/next_tick.js:129:7) 

のはなぜですトランザクションのデータを書き込むことができないデータベース参照ですか?私がしたいのは、すべての得点と距離を合計することだけです。

答えて

2

を使用しますが、詳細が間違っています。たぶん、これは他の人々に役立つでしょう:

それは管理者ではありません。 データベース .ref( '')

管理者です。 データベース() .ref( '')

関連する問題