Cloud Firestoreからデータを取得して、最終的にGraphQLサーバーで使用しようとしていますが、今のところ、テストするためにJSONを返しています。次のコードを使用してFirestoreにアクセスしていますが、データが返されないようです。 「start test」と「final test Push」がJSONレスポンスで期待どおりに表示されているので、関数が正しく機能することはわかっています。
Admin SDKの手順も試しましたが、役に立ちませんでした。誰かが私がここで間違っていることを発見できますか?
import * as admin from "firebase-admin"
import * as functions from "firebase-functions"
admin.initializeApp(functions.config().firebase)
const db = admin.firestore()
const authors = [{ key: "start test" }]
db.collection("authors")
.get()
.then(snapshot => {
snapshot.forEach(doc => {
const data = {
id: doc.id,
firstName: doc.firstName,
lastName: doc.lastName
}
authors.Push(data)
authors.Push({ key: "test in loop" })
})
})
authors.Push({ key: "final test Push" })
export default authors
どうもありがとう!
編集:これは別のゲッターファイルからのものであることに注意する必要があります。 Cloud Function自体は別の場所にあり、適切に機能しています。
編集#2:クラウド関数の定義
import authorsArray from "./firestore"
const testServer = express()
testServer.get("*", (req, res) => {
res.setHeader("Content-Type", "application/json")
res.send(JSON.stringify({ data: authorsArray }))
})
const test = https.onRequest(testServer)
次のようにコードを変更してみてください。スナップショットデータはdoc.data()
で、IDはdoc.id
db.collection("authors")
.get()
.then(snapshot => {
snapshot.forEach(doc => {
const data = {
id: doc.id,
firstName: doc.data().firstName,
lastName: doc.data().lastName
}
authors.Push(data)
authors.Push({ key: "test in loop" })
})
参考のために、 link を確認してください