From d8b60f4e45cbf2a03d833ff8aefa3db58c755462 Mon Sep 17 00:00:00 2001 From: mantikoros Date: Tue, 18 Jan 2022 16:53:32 -0600 Subject: [PATCH] script: create private users --- functions/src/scripts/create-private-users.ts | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 functions/src/scripts/create-private-users.ts diff --git a/functions/src/scripts/create-private-users.ts b/functions/src/scripts/create-private-users.ts new file mode 100644 index 00000000..9ef0ec33 --- /dev/null +++ b/functions/src/scripts/create-private-users.ts @@ -0,0 +1,45 @@ +import * as admin from 'firebase-admin' +import * as _ from 'lodash' + +import { PrivateUser, User } from '../../../common/user' + +// Generate your own private key, and set the path below: +// https://console.firebase.google.com/u/0/project/mantic-markets/settings/serviceaccounts/adminsdk + +const serviceAccount = require('../../../../../../Downloads/dev-mantic-markets-firebase-adminsdk-sir5m-b2d27f8970.json') + +admin.initializeApp({ + credential: admin.credential.cert(serviceAccount), +}) + +const firestore = admin.firestore() + +async function main() { + const snap = await firestore.collection('users').get() + const users = snap.docs.map((d) => d.data() as User) + + for (let user of users) { + const fbUser = await admin.auth().getUser(user.id) + const email = fbUser.email + const { username } = user + + const privateUser: PrivateUser = { + id: user.id, + email, + username, + } + + try { + await firestore + .collection('private-users') + .doc(user.id) + .create(privateUser) + + console.log('created private user for:', user.username) + } catch (_) { + // private user already created + } + } +} + +if (require.main === module) main().then(() => process.exit())