我有一个firebase云函数(http请求),我想在其中更新firestore数据库中的文档
const functions = require('firebase-functions')
const admin = require('firebase-admin');
admin.initializeApp();
exports.webhook = functions.https.onRequest(async (req, res) => {
const { id } = req.body
// Create payment
exports.webhook = functions.https.onRequest(async (req, res) => {
const { id } = req.body
// Create payment
try {
console.log(id)
console.log('test before db call')
admin.firestore().collection('payments').doc(id).update(
{
status: "paid"
}
).then(() => {
console.log('success')
})
console.log('test after db call')
res.send('ok')
} catch (e) {
res.send('not ok')
}
})
函数正在部署,控制台。日志(id)
正确,但每当我调用admin时。firestore()
它不再打印任何内容。评论该部分打印“promise已解决”,我觉得我无法访问或使用错误的语法访问Firestore db,但我不明白为什么?
Firebase日志正在打印:
函数执行开始
tr_。。。。。。。。(id)
db调用前测试
函数执行耗时1103毫秒,完成状态代码:200
您没有正确使用update()
返回的promise。在发送响应之前,您需要等待该promise得到解决。现在,您可以在不等待数据库更新完成的情况下发送响应,这意味着云函数可以在其返回后关闭所有异步工作<代码>则不会阻止您的代码。它只允许您向异步工作添加回调。您应仅在完成后发送响应:
admin.firestore().collection('payments').doc(id).update(
{
status: "paid"
}
).then(() => {
console.log('success')
res.send('ok') // send response here
})
我正试图通过谷歌云功能访问和更新我的firebase数据库,但它不起作用。 我已经编写了一个云函数,其中我已经初始化了Firebase-admin。 我必须提供service_account初始化管理。 我正在将我的firebase应用程序初始化为 我在谷歌云功能中没有我的服务帐户路径。 是否有任何方法从GOOGLE云函数访问Firebase? 谢谢
谷歌云功能可以使用它们的URL公开访问,其格式如下 是否可以限制云功能的这种公共可访问性?以至于他们只能私下访问的东西。
我目前正在尝试构建一个云函数,将Firestore数据导出到存储桶中。 我在Firebase文档中找到的唯一一个关于如何做到这一点的例子: 例 从这个例子来看,我似乎需要安装作为云函数的依赖项。 但是我想知道是否只能使用包访问这些方法。
问题内容: 最初一切正常,我有一个类似的组件。这个 在其他档案中 到这里为止一切正常,但是当我在 它不起作用。我已经从react-redux导入了connect 问题答案: 接受为第四参数。在此选项参数中,您可以将flag设置为true。之后,您可以使用like 来访问ref的函数
我在Firebase上运行一个web应用程序,从实时数据库开始,现在我正在将数据迁移到firestore。 我使用ADMINSDK迁移了除时间戳之外的所有其他数据。在我的web应用程序中,当用户上传新内容时,代码会向数据库添加时间戳,以便内容可以按时间排序。 问题在于实时数据库和firestore显然在记录时间戳时使用了不同的方法: 另一个问题是firebase.firestore.Timesta