-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpull_metadata_for_uttids.js
41 lines (38 loc) · 1.22 KB
/
pull_metadata_for_uttids.js
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
39
40
41
const fs = require('fs');
const admin = require("firebase-admin");
admin.initializeApp({
credential: admin.credential.cert("../serviceAccountKey.json"),
databaseURL: "https://project-coswara.firebaseio.com"
})
const db = admin.firestore();
const dateString = '2020-04-13'
const outputDir = `../to_upload/${dateString}`
if (!fs.existsSync(outputDir)){
fs.mkdirSync(outputDir);
}
fs.readFile('./20200413_ids.txt', function(err, data) {
if (err) throw err;
let array = data.toString().split("\n");
const promises = []
for (let i in array) {
// console.log('Processing user', array[i]);
const userId = array[i]
promises.push(db.collection('USER_METADATA').doc(dateString).collection('DATA').doc(userId).get());
}
Promise.all(promises).then((results) => {
results.forEach((doc) => {
if (doc.exists) {
const userDataLoc = `${outputDir}/${doc.id}`;
if (!fs.existsSync(userDataLoc)){
fs.mkdirSync(userDataLoc);
}
const metaDataJSON = `${userDataLoc}/metadata.json`
let metaData = {
'id': doc.id
}
metaData = Object.assign(metaData, doc.data())
fs.writeFileSync(metaDataJSON, JSON.stringify(metaData, null, 4));
}
})
})
})