Skip to content

Commit 8ddfaef

Browse files
a folder for all random firebase stuff
1 parent 1ca33ec commit 8ddfaef

File tree

6 files changed

+883
-16
lines changed

6 files changed

+883
-16
lines changed

firebase/.env.template

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
FB_API_KEY=
2+
FB_AUTH_DOMAIN=
3+
FB_PROJECT_ID=
4+
FB_STORAGE_BUCKET=
5+
FB_MESSAGING_SENDER_ID=
6+
FB_APP_ID=
7+
FB_MEASUREMENT_ID=

firebase/.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.output
2+
3+
.env*
4+
!.env.template

firebase/demographicsICHack24.js

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import { initializeApp } from "firebase/app";
2+
import { collection, getDocs, getFirestore, query } from "firebase/firestore";
3+
import fs from 'fs';
4+
import dotEnv from 'dotenv';
5+
6+
dotEnv.config();
7+
8+
// TODO: Replace the following with your app's Firebase project configuration
9+
// See: https://support.google.com/firebase/answer/7015592
10+
const firebaseConfig = {
11+
apiKey: process.env.FB_API_KEY,
12+
authDomain: process.env.FB_AUTH_DOMAIN,
13+
projectId: process.env.FB_PROJECT_ID,
14+
storageBucket: process.env.FB_STORAGE_BUCKET,
15+
messagingSenderId: process.env.FB_MESSAGING_SENDER_ID,
16+
appId: process.env.FB_APP_ID,
17+
measurementId: process.env.FB_MEASUREMENT_ID
18+
};
19+
20+
// Initialize Firebase
21+
const app = initializeApp(firebaseConfig);
22+
23+
24+
// Initialize Cloud Firestore and get a reference to the service
25+
const db = getFirestore(app);
26+
27+
const demographQuery = query(collection(db, 'demographics'))
28+
const snapshot = await getDocs(demographQuery)
29+
30+
const data = [];
31+
snapshot.forEach(doc => {
32+
data.push(doc.data());
33+
})
34+
const allKeys = Array.from(new Set(data.flatMap(elem => Object.keys(elem))));
35+
36+
37+
function toCSV(list, keys) {
38+
const fields = []
39+
for (const item of list) {
40+
fields.push(keys.map(key => item[key]).join(','))
41+
}
42+
return fields.join("\n")
43+
}
44+
const csvFormat = allKeys.join(',') + "\n" + toCSV(data, allKeys) + "\n";
45+
46+
fs.mkdirSync('./.output', { recursive: true });
47+
fs.writeFileSync('./.output/demographicsICHack24.csv', csvFormat);
48+
49+
process.exit(0);

firebase/package.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "@docsoc-tools/firebase",
3+
"version": "1.0.0",
4+
"type": "module",
5+
"dependencies": {
6+
"dotenv": "^16.4.5",
7+
"firebase": "^10.14.1"
8+
}
9+
}

0 commit comments

Comments
 (0)