gpt4 book ai didi

Firebase 一次性函数

转载 作者:行者123 更新时间:2023-12-04 11:22:01 25 4
gpt4 key购买 nike

我确信这些是常见的场景,但在研究了几个小时后,我无法真正找到常见的做法是什么。也许在 Firebase 方面有更多经验的人可以为我指明正确的方向。
我有两个特定的场景:

1. 运行一次的代码
示例 1:向 firestore 中的所有用户添加新数据,这是新功能所必需的
示例 2:开始将数据复制到现有文档中
我目前在云函数中编写代码,并在 firestore 事件(“隐藏”文档的 onUpdate)上运行它,然后如果一切顺利,我会立即删除该函数。
我还增加了这个函数的超时和内存,因为这个想法是潜在地更新数百万个文档。

2. 从 firebase 控制台(或命令行)手动触发功能
示例:在应用程序中授予用户管理员权限(设置自定义声明和 Firestore 数据的功能)。我们没有时间实现后台,因此从 firebase 门户网站/控制台执行此操作是理想的,指定用户 ID。
我目前的解决方案是使用 https function ,并从 GCP 门户运行它(在函数的“测试”选项卡上,能够传递 json)。但是该功能可以公开触发,我真的不喜欢......

这些场景的常见做法是什么?

最佳答案

扩展我的评论:如果你想创建一个节点脚本来运行一次性代码,你只需像任何云函数一样编写你的 JS 代码,但只需立即运行它。像这样的东西。

const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();

db.collection('users')
.where('myField', '==', true)
.get()
.then(querySnapshot => {
querySnapshot.docs.forEach(doc => {
// update doc
});
});

如果你把它保存为 script.js 并用 node script.js 执行它您将被指向下载带有凭据的 JSON 文件。按照说明操作,然后您可以再次运行该脚本,现在您可以从命令行在 Firestore 上运行您自己的代码。

关于Firebase 一次性函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60555467/

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