diff --git a/firebase/scripts/group-create.js b/firebase/scripts/group-create.js new file mode 100644 index 0000000..1153a31 --- /dev/null +++ b/firebase/scripts/group-create.js @@ -0,0 +1,54 @@ +const admin = require('firebase-admin'); + +var serviceAccount = require("../your-firebase-sdk-config-file.json"); + +admin.initializeApp({ + credential: admin.credential.cert(serviceAccount), + databaseURL: "https://your-firebase-project.firebaseio.com" +}); + +const db = admin.firestore(); + +(async () => { + try { + + // Get all users of the database + const users = await db.collection('/users').listDocuments(); + const members = []; + for (let i = 0; i < users.length; i++) { + members[i] = (await users[i].get()).data().uid; + } + + // create a new 'dev' group + const group = await db.collection('/groups').add({ + 'abbreviation': 'DV', + 'color': 'fcba03', + 'name': 'dev', + 'members': members + }); + + // add all users to the 'dev' group + for (let i = 0; i < users.length; i++) { + const joinedGroups = (await users[i].get()).data().joinedGroups; + joinedGroups.push(group.id); + users[i].update({ + 'joinedGroups' : joinedGroups + }); + } + + // create a general channel + db.collection('/groups') + .doc(group.id) + .collection('/channels') + .add({ + 'name': "general", + 'type': "TOPIC", + 'visibility': "OPEN" + }) + + console.log(`Group with id ${group.id} created`); + + } catch (e) { + console.log(e); + } +})();