FirestoreにJSONを取り込む
JSON形式で準備されたテストデータ等をFirestoreに取り込む方法。
準備
必要なモジュールのインストール
ローカルでバッチ実行を想定しているのでfirebase-adminと、本命コンポーネントのfirestore-export-importをインストール。
npm install --save firebase-admin
npm install --save firestore-export-import
秘密鍵の取得
firebase-adminの実行には秘密鍵が必要なので準備する。
ユーザーと権限 -> サービスアカウント -> 新しい秘密鍵の生成
jsonの準備
今回は下記のjsonを取り込む(参考ページよりそのまま拝借しました)。
firestore-export-importで取り込むことを想定する場合は、このような形式を意識しておく必要がある。
{
"users": [
{
"id": 1,
"first_name": "Kristin",
"last_name": "Smith"
},
{
"id": 2,
"first_name": "Olivia",
"last_name": "Parker"
},
{
"id": 3,
"first_name": "Jimmy",
"last_name": "Robinson"
},
{
"id": 4,
"first_name": "Zack",
"last_name": "Carter"
},
{
"id": 5,
"first_name": "Brad",
"last_name": "Rayburn"
}
]
}
最後の,はとったほうがいいみたい。
実装
いろいろ書いていますが、殆どはコンフィグ関連で、取り込み関連はほぼ1行。
var admin = require("firebase-admin");
var serviceAccount = require("path/to/config.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://{project}.firebaseio.com"
});
var db = admin.firestore();
var fireStoreService = require('firestore-export-import');
//値を追加
// var docRef = db.collection('users').doc('0001').set({ name: 'hoge', age: 33 });
const jsonToFirestore = async () => {
try {
await fireStoreService.restore('./users.json');
} catch (e) {
console.log(e);
}
}
jsonToFirestore();
実行
実行すると取り込まれる。doc名称として、0,1,2,3とかが使われるみたい。
node index.js
0 was successfully added to firestore!
1 was successfully added to firestore!
2 was successfully added to firestore!
3 was successfully added to firestore!
4 was successfully added to firestore!
参考
Author And Source
この問題について(FirestoreにJSONを取り込む), 我々は、より多くの情報をここで見つけました https://qiita.com/zaburo/items/c2a3222039e4a85d0d94著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .