ern*_*ton 7 firebase google-cloud-functions firebase-admin google-cloud-firestore
我确信这些是常见的场景,但在研究了几个小时后,我无法真正找到常见的做法是什么。也许在 Firebase 方面有更多经验的人可以为我指明正确的方向。
我有两个特定的场景:
示例 1:向 firestore 中的所有用户添加新数据,这是新功能所需的
示例 2:开始将数据复制到现有文档中
我目前在云函数中编写代码,并在 firestore 事件(onUpdate“隐藏”文档的)上运行它,然后如果一切顺利,我会立即删除该函数。
我还增加了这个函数的超时和内存,因为这个想法是潜在地更新数百万个文档。
示例:在应用程序中授予用户管理员权限(设置自定义声明和 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
});
});
Run Code Online (Sandbox Code Playgroud)
如果您将其保存为 script.js 并使用它执行它,node script.js您将被指向下载带有凭据的 JSON 文件。按照说明操作,然后您可以再次运行该脚本,现在您可以从命令行在 Firestore 上运行您自己的代码。
| 归档时间: |
|
| 查看次数: |
858 次 |
| 最近记录: |