package Ġcom . iti . fi ery Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ Ċ class ĠFire User ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġuser Callbacks : ĠUser Callbacks Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġauth Ġ= ĠFirebase Auth . getInstance () ĊĠĠĠ Ġprivate Ġval Ġsp Ġ= ĠShared Prefs Repo ( context ) ĊĊĠĠĠ Ġfun Ġcreate New User ( email : ĠString , Ġpassword : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġauth . createUser With Email And Password ( email , Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Complete Listener Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( task . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsign Admin Back In () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask . exception ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Callbacks . onError ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġsign Admin Back In () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// sign Ġthe Ġnew Ġuser Ġout ĊĠĠĠĠĠĠĠ Ġauth . sign Out () ĊĠĠĠĠĠĠĠ Ġ// get Ġadmin Ġdata Ġfrom Ġsecure Ġshared Ġprefs ĊĠĠĠĠĠĠĠ Ġval Ġsecret Email Ġ= Ġsp . readString ( EMAIL ) !! ĊĠĠĠĠĠĠĠ Ġval Ġsecret Password Ġ= Ġsp . readString ( PASSWORD ) !! ĊĠĠĠĠĠĠĠ Ġ// sign Ġadmin Ġback Ġin ĊĠĠĠĠĠĠĠ Ġauth . signIn With Email And Password ( secret Email , Ġsecret Password ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Complete Listener Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( task . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Callbacks . on New User Created () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask . exception ?. let Ġ{ Ġuser Callbacks . onError ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ