-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathupdate-users-upload.js
More file actions
38 lines (30 loc) · 964 Bytes
/
Copy pathupdate-users-upload.js
File metadata and controls
38 lines (30 loc) · 964 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
const fs = require('fs');
const path = require('path');
const fb = require('firebase-admin');
const serviceAccount = require('../../private/service-account.json');
const promiseLimit = require('promise-limit')
const limit = promiseLimit(400);
fb.initializeApp({
credential: fb.credential.cert(serviceAccount),
databaseURL: 'https://parallel-beta-31dc4.firebaseio.com'
});
const userDb = fb.firestore().collection('users');
const job = async (id, data) => {
console.log(id);
await userDb.doc(id).set({
...data,
oldShowWelcomeMsg: null,
oldLevel: null,
}, { merge: true });
}
const run = async () => {
const users = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../../private/new-cache-users.json'), 'utf8'));
const data = Object.entries(users);
Promise.all(data.map(([id, user]) => {
return limit(() => job(id, user))
})).then(results => {
console.log()
console.log('results:', results.length)
})
};
run();