OK cool. If its only 8 users manual verification might be the expedient route.
So let the users sign up with email and password. Allow them to create a user record but with verified set to false. Allow them to state their *claimed* email. Then prevent them from writing any other data until that flag is flipped. So the security rules would look something like:
{
"rules": {
"$user": {
"verified-flag": {
// a new user can only write false from a client device
".write": "auth.uid === $user && newData.val() === false",
".validate": "newData.isBoolean()"
},
"email": {
// a new user can write here only once, and only with a value that matches their auth payload claimed email
".write": "auth.uid === $user && !data.exists() && newData.exists() && auth.email == newData.val()",
".validate": "newData.isString()"
},
"userdata": {
// write only if logged in user and that verified has been flipped to true
".write": "auth.uid === $user && newData.parent().child('verified-flag').val() === true"
}
}
}
}
So the user app would
1. let the user create a username and password account
3. then the user application writes the *claimed* email to /$user/email
Then they cannot write anything in the privileged userdata area until someone flips the verified-flag.
4. You manually check you firebase admin dashboard for new verified-flag = false (or issue a query on /$user for verified == false). You should not flip that bit until you have verified ownership of that email address, as any client can claim any email address. So send them an email saying "did you create an account in the last 24 hours?" If they say yes, and the email is on your whitelist, then its probably safe to consider that account verified and you can just use the Firebase dashboard to manually change their verified-flag to true.
5. Now that user account is verified they can write to /$user/userdata which is where your main application data will reside.
I hope that helps, the first link I posted goes further by automating step 4, but you need to be able to read and write emails in a service somewhere.
Tom