クライアント側で関数をコールしたら、FireStoreのtestコレクションの全てのドキュメントを返すのを作っています。
公式ドキュメントと解説サイトをいくつか見て書いたコードが以下になります。
デプロイも問題なく、jsonを返す前のconsole.log(json)では、Firebaseのコンソールで一覧が返ってるのを確認済みです。
しかし、クライアント側の戻り値は{data: null}しか返ってこず、Firebaseのコンソールで確認出来たdocの一覧のデータがありません。
数時間格闘しましたが、結局解決策がわからずじまいです。
何か間違っていることや解決方法を知っている方がいましたらご教授お願いします。
js
1// index.js 2 3if (!process.env.FUNCTION_NAME || process.env.FUNCTION_NAME === 'getDocList') { 4 exports.getDocList = require('./funcation/function/getDocList.js'); 5}
js
1// function/getDocList.js 2 3const functions = require('firebase-functions'); 4const admin = require('firebase-admin'); 5 6admin.initializeApp(functions.config().firebase) 7 8const db = admin.firestore() 9 10module.exports = functions.https.onCall((data, ctx) => { 11 db.collection("test").get().then(function(querySnapshot) { 12 let json = {} 13 querySnapshot.forEach(function(doc) { 14 json[doc.id] = doc.data() 15 }) 16 console.log(json) 17 return json 18 }) 19})
vue
1 2<script> 3// Nuxt page/index.vue 4 5import firebase from 'firebase' 6 7export default { 8 mounted() { 9 firebase 10 .functions() 11 .httpsCallable('getDocList') 12 .call() 13 .then(result => { 14 console.log(result) 15 }) 16 .catch(err => { 17 console.log(err) 18 }) 19 } 20} 21</script>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/23 11:54
2019/06/23 11:58