exports.userTester = functions.firestore.document ('tests/{id}').onWrite(async (snap, ctx) => {
if (!snap.after.exists) {
console.log ("Snapshot was deleted - no handling needed");
return;
}
const data = snap.after.data ();
data ['read'] = false;
//data ['timestamp'] = new Date ();
const token = new Date().toDateString ();
await writeTestToAllUsers (data, token);
});
async function writeTestToAllUsers(data : admin.firestore.DocumentData, nextPageToken : string) {
console.log ("writetoAllUsers");
// find all active users
await admin.auth ().listUsers (1000, nextPageToken).then (async userList => {
console.log ("Got user batch with size " + userList.users.length);
userList.users.forEach (async user => await writeTestToUser (user, data));
if (userList.pageToken) {
await writeTestToAllUsers (data, userList.pageToken);
}
}).catch (err => {
console.log (err);
});
};
async function writeTestToUser (user:admin.auth.UserRecord, data : admin.firestore.DocumentData) {
console.log (user.uid);
};