部署后如何播种 firestore 数据库?

How to seed the firestore database after deployment?

我将 firebase 用于一个 API 项目,对于初始设置,我需要使用一些用户和基本数据来为 firestore 数据库播种。

我们如何运行这个?

一个想法是创建一个端点 /setup?someKey=someValue 并传入数据。有没有更好更合适的方法用初始值播种数据库?

此外,我还需要在 Firebase Auth 中创建一个超级用户吗?

一种简单的方法是在您自己的计算机上使用 Admin SDK。

您创建了一个以

开头的 JS 文件
#!/usr/bin/node
const admin = require('firebase-admin');

admin.initializeApp({
    credential: admin.credential.cert("xxxx.json")
});

其中 xxxx.json 是您的 Firebase 服务帐户的私钥文件。您可以按照文档中 here 的描述从 Firebase 控制台获取此文件。通常将其存储在与 index.js 文件同一级别的 functions 文件夹中。如果您想将其存储在 functions 文件夹中的其他位置(例如 sub-folder),您需要调整上述代码中的路径。

然后,在文件的其余部分,您可以与您的 Firestore 实例进行交互,就像您在 Cloud Functions 中所做的那样,例如:

admin.firestore().collection('...').add({...});

根据您的数据格式,您必须编写代码以在 Firestore 中创建文档。

例如,让我们假设您的数据是一个 JS 对象数组。你可以这样做:

const myArrayOfObjects = [{color: 'blue', quantity: 34}, {color: 'green', quantity: 98}];

const p = [];
myArrayOfObjects.forEach(obj => {
    p.push(admin.firestore().collection('...').add(obj)
})
Promise.all(p);

然后你只需在终端window

中执行node thefilename.js来执行这个js文件