これは、node.js index.jsファイルのヘッダーです。
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
var db = admin.firestore();
これは、firestoreの変更をリッスンするnode.js関数です。
exports.myFoo = functions.firestore
.document('foo/{bar}')
.onWrite(event => {
// do stuff
}
これはpackage.jsonファイルにあります:
"dependencies": {
"firebase-admin": "^5-.4.2",
"firebase-functions": "^0.7.1",
"firestore": "^1.1.6"
},
「firebase deploy」コマンドを実行しようとすると、次のエラーが発生します。
エラー:関数トリガーの解析中にエラーが発生しました。
TypeError:admin.firestoreは関数ではありません
エラーを再現して、解決策を総当たりすることができました。 npm
についてはあまり知りませんが、このソリューションが機能した理由を完全に説明することはできません。
私の元の_package.json
_に含まれるもの:
_ "dependencies": {
...
"firebase-admin": "^4.2.1",
"firebase-functions": "^0.7.1",
...
},
_
ドキュメントで推奨 のように、functionsフォルダーで次の2つのコマンドを実行しました。
_npm install -g firebase-tools
npm install firebase-functions@latest --save
_
私も試しました:
_npm install --save firebase-admin
npm upgrade
_
次のエラーメッセージが繰り返し表示されます。
_+-- UNMET PEER DEPENDENCY [email protected]
npm WARN [email protected] requires a peer of firebase-admin@~5.4.2 but none was installed.
_
_firebase-admin
_を更新する必要があると考えましたが、更新できませんでした。だから私はこの行を削除するために依存関係ファイルを編集しました:
_"firebase-admin": "^4.2.1"
_
次に_npm install --save firebase-admin
_を再度実行しました。これにより、_package.json
_にはエラーなくコンパイルされたバージョン_"firebase-admin": "^5.4.2"
_およびvar db = admin.firestore();
が含まれていました。
_functions.firestore
_はfunctions.firestore()
であるはずです
これを試して
const getReceiverDataPromise = admin.firestore().doc('users/' + receiverUID).get();
const getSenderDataPromise = admin.firestore().doc('users/' + senderUID).get();
return Promise.all([getReceiverDataPromise, getSenderDataPromise]).then(results => {
const receiver = results[0].data();
console.log("receiver: ", receiver);
const sender = results[1].data();
console.log("sender: ", sender);
});