Firestoreにテストデータを作る(+注意点)
やること自体は難しくない。
for等でループしてadd()かset()するだけ。
私は、docを指定したかったので、set()を利用しました。以下。
var admin = require("firebase-admin");
var serviceAccount = require("./serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://{project}.firebaseio.com"
});
var db = admin.firestore();
//memoly leakのwarningを出ないようにする。
require('events').EventEmitter.defaultMaxListeners = 0;
//ループ
for (let i = 1; i < 100; i++) {
let i0 = ('0000000000' + i).slice(-10);
db.collection('users').doc(i0).set({
member_id: i0,
name: "user" + i,
email: "user" + i + "@test.com",
age: Math.floor(Math.random() * 60) + 15, //15 ~ 74
created_at: admin.firestore.FieldValue.serverTimestamp()
});
console.log("create:" + i0);
}
注意?点
set()処理自体は正しくされましたが、(最初)下記のようなエラーがでました。
MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added. Use emitter.setMaxListeners() to increase limit
標準ではListenerの上限が10になってることから起こるようです。とりあえずWarningを消すには、下記のようにdefaultMaxListenersの数を適切に設定するといいようです。
require('events').EventEmitter.defaultMaxListeners = 0;
なお、0に設定すると無制限ということのようです。
fakerを使ってみる
ダミーデータといえばfaker。使ってみます。
npm install faker
書いてみる。いちおうlocalでjaが指定できるみたい。
ただ、jaにするとメアドとか超テキトーな感じになります。
....(省略)...
const faker = require('faker');
faker.locale = "ja";
for (let i = 1; i < 100; i++) {
let i0 = ('0000000000' + i).slice(-10);
db.collection('users').doc(i0).set({
member_id: i0,
name: faker.name.findName(),
email: faker.internet.email(),
age: Math.floor(Math.random() * 60) + 15,
created_at: admin.firestore.FieldValue.serverTimestamp()
});
console.log("create:" + i0);
}
その他の使い方はこちらを見る。
Author And Source
この問題について(Firestoreにテストデータを作る(+注意点)), 我々は、より多くの情報をここで見つけました https://qiita.com/zaburo/items/42bbf923696e19af5039著者帰属:元の著者の情報は、元の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 .