1

私は何が間違っているのか分からない他のいくつかの開発者にこれを示したと言ってこれを序文にしたいと思います。Firebase Cloud機能以前の作業機能からコピーされたコードで予期しないトークンが発生しましたか?

私はFirebaseでいくつかのクラウド機能を持っていて、それ以外はすべて機能しています。しかし、別の機能を追加しようとしたときに、他の機能と同じコードを使用して同じデータベースにアクセスすると、「予期しないトークン」が表示されます。エラー。ここに私のコードは次のとおりです。

exports.activateLatestDormantGame = functions.https.onRequest((request, response) => { 
    var database = admin.database().ref(); 
    var gamesDatabase = database.child('games'); 
    var gameNum; 

    var gamesDatabaseQuery = gamesDatabase.orderByKey().limitToFirst(1); 
    gamesDatabaseQuery.once('child_added').then((latestGame) => { 
     gameNum = parseInt(latestGame.getKey()); 
     gamesDatabaseQuery.off('child_added'); 
    }).then(() => { 
      gamesDatabase.child(gameNum.toString()).child('isActive').set('true'); 
     response.end(); 
    }); 
}); 

exports.tallyVotes = functions.https.onRequest((request, response) => { 
    var database = admin.database().ref(); 

    var gamesDatabaseQuery = database.child('games').orderByKey().limitToFirst(1); 

    gamesDatabaseQuery.once('child_added').then((latestGame) => { 
     return parseInt(latestGame.getKey()); 
    }).then((latestGameKey) => { 
     var gameDatabaseRef =  database.child('games').child(latestGameKey.toString()); 
     var numTeams =  gameDatabaseRef.child('teams').child('numTeams').val(); 
     var votes = []; 
     for (team in numTeams) { 
      var tallyString = gameDatabaseRef.child('answers').child(team.toString()).val(); 
      var tallyArray = tallyString.split(','); 
      var highestVote = 0; 
      for (vote in tallyArray) { 
       if (parseInt(vote) > highestVote) { 
        highestVote = parseInt(vote); 
       } 
      } 
      votes.push(highestVote); 
     } 

     var questionsAskedString = gamesDatabaseRef.child('questionsAsked').val(); 
     var questionsAskedArray = questionsAskedString.split(','); 
     var latestQuestion = questionsAskedArray[questionsAskedArray.length - 1]; 

     return [latestQuestion, votes, latestGameKey]; 
    }).then(returnArray) => { 
     var answer = database.child('questionDatabase').child(returnArray[0]).child('answerIndex').val(); 
     var correctTeams = []; 
     for (var i = 0; i < returnArray[1].length; i++) { 
      if (returnArray[1][i] == answer) { 
       correctTeams.push(i); 
      } 
     } 
     database.child('games').child(returnArray[2]).child('correctTeams').set(correctTeams.join(',')); 
     response.end(); 
    }); 
}); 

そして、ここではエラーです:

Error: Error occurred while parsing your function triggers. 

/private/var/folders/zm/qyfsj2ms2yd0w2t748s_v16m0000gn/T/fbfn_8186jLVALtYUfzf1/index.js:48 
gamesDatabaseQuery.once('child_added').then((latestGame) => { 
       ^

SyntaxError: Unexpected token . 
    at createScript (vm.js:74:10) 
    at Object.runInThisContext (vm.js:116:10) 
    at Module._compile (module.js:588:28) 
    at Object.Module._extensions..js (module.js:635:10) 
    at Module.load (module.js:545:32) 
    at tryModuleLoad (module.js:508:12) 
    at Function.Module._load (module.js:500:3) 
    at Module.require (module.js:568:17) 
    at require (internal/module.js:11:18) 
    at /usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:18:11 

私は、コードを再利用していますし、それが機能していないことを示すためにactivateLatestGame機能が含まれています。私はここの問題が何であるか分からず、どんな助けも大歓迎です。

乾杯!

答えて

0

あなたは、この行の(が欠落しています

}).then(returnArray) => { 

は次のようになります。

}).then((returnArray) => { 
+0

信じられない...問題であることが判明している、ありがとうございました。 –

関連する問題