gpt4 book ai didi

firebase - 如何从 Cloud Function 访问 Cloud Firestore?

转载 作者:行者123 更新时间:2023-12-02 19:23:15 26 4
gpt4 key购买 nike

我正在尝试从 Cloud Firestore 检索数据以最终在 GraphQL 服务器中使用,但目前我只是返回 JSON 进行测试。我正在使用以下代码访问 Firestore,但似乎没有取回任何数据。我知道该函数可以正常工作,因为“开始测试”和“最终测试推送”按预期出现在 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

非常感谢!

编辑:我应该注意,这是来自一个单独的 getter 文件。云函数本身在其他地方并且运行正常。

编辑#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

关于firebase - 如何从 Cloud Function 访问 Cloud Firestore?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48241126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com