package Ġdev . git live . firebase . auth Ċ Ċ import Ġdev . git live . firebase . firebase Ċ import Ġkotlinx . coroutines . await Ċ import Ġkotlin . js . Date Ċ Ċ actual Ġclass ĠFirebase User Ġinternal Ġconstructor ( val Ġjs : Ġfirebase . user . User ) Ġ{ ĊĠĠĠ Ġactual Ġval Ġuid : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ Ġjs . uid Ġ} ĊĠĠĠ Ġactual Ġval ĠdisplayName : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ Ġjs . displayName Ġ} ĊĠĠĠ Ġactual Ġval Ġemail : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ Ġjs . email Ġ} ĊĠĠĠ Ġactual Ġval ĠphoneNumber : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ Ġjs . phoneNumber Ġ} ĊĠĠĠ Ġactual Ġval Ġphoto URL : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ Ġjs . photo URL Ġ} ĊĠĠĠ Ġactual Ġval Ġis Anonymous : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ Ġjs . is Anonymous Ġ} ĊĠĠĠ Ġactual Ġval Ġis Email Verified : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ Ġjs . email Verified Ġ} ĊĠĠĠ Ġactual Ġval ĠmetaData : ĠUser MetaData ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ ĠUser MetaData ( js . metadata ) Ġ} ĊĠĠĠ Ġactual Ġval Ġmulti Factor : ĠMulti Factor ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ ĠMulti Factor ( js . multi Factor ) Ġ} ĊĠĠĠ Ġactual Ġval Ġprovider Data : ĠList < UserInfo > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ Ġjs . provider Data . map Ġ{ ĠUserInfo ( it ) Ġ} Ġ} ĊĠĠĠ Ġactual Ġval Ġprovider Id : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ Ġjs . provider Id Ġ} ĊĠĠĠ Ġactual Ġsuspend Ġfun Ġdelete () Ġ= Ġre throw Ġ{ Ġjs . delete (). await () Ġ} ĊĠĠĠ Ġactual Ġsuspend Ġfun Ġreload () Ġ= Ġre throw Ġ{ Ġjs . reload (). await () Ġ} ĊĠĠĠ Ġactual Ġsuspend Ġfun ĠgetId Token ( force Refresh : ĠBoolean ): ĠString ? Ġ= Ġre throw Ġ{ Ġjs . getId Token ( force Refresh ). await () Ġ} ĊĠĠĠ Ġactual Ġsuspend Ġfun ĠgetId Token Result ( force Refresh : ĠBoolean ): ĠAuth Token Result Ġ= Ġre throw Ġ{ ĠAuth Token Result ( js . getId Token Result ( force Refresh ). await ()) Ġ} ĊĠĠĠ Ġactual Ġsuspend Ġfun Ġlink With Credential ( credential : ĠAuth Credential ): ĠAuth Result Ġ= Ġre throw Ġ{ ĠAuth Result ( js . link With Credential ( credential . js ). await ()) Ġ} ĊĠĠĠ Ġactual Ġsuspend Ġfun Ġre authenticate ( credential : ĠAuth Credential ) Ġ= Ġre throw Ġ{ ĊĠĠĠĠĠĠĠ Ġjs . re authenticate With Credential ( credential . js ). await () ĊĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠ Ġ} ĊĠĠĠ Ġactual Ġsuspend Ġfun Ġre authenticate And Retrieve Data ( credential : ĠAuth Credential ): ĠAuth Result Ġ= Ġre throw Ġ{ ĠAuth Result ( js . re authenticate With Credential ( credential . js ). await ()) Ġ} ĊĊĠĠĠ Ġactual Ġsuspend Ġfun Ġsend Email Verification ( action Code Settings : ĠAction Code Settings ?) Ġ= Ġre throw Ġ{ Ġjs . send Email Verification ( action Code Settings ?. toJson ()). await () Ġ} ĊĠĠĠ Ġactual Ġsuspend Ġfun Ġunlink ( provider : ĠString ): ĠFirebase User ? Ġ= Ġre throw Ġ{ ĠFirebase User ( js . unlink ( provider ). await ()) Ġ} ĊĠĠĠ Ġactual Ġsuspend Ġfun Ġupdate Email ( email : ĠString ) Ġ= Ġre throw Ġ{ Ġjs . update Email ( email ). await () Ġ} ĊĠĠĠ Ġactual Ġsuspend Ġfun Ġupdate Password ( password : ĠString ) Ġ= Ġre throw Ġ{ Ġjs . update Password ( password ). await () Ġ} ĊĠĠĠ Ġactual Ġsuspend Ġfun Ġupdate PhoneNumber ( credential : ĠPhone Auth Credential ) Ġ= Ġre throw Ġ{ Ġjs . update PhoneNumber ( credential . js ). await () Ġ} ĊĠĠĠ Ġactual Ġsuspend Ġfun Ġupdate Profile ( displayName : ĠString ?, Ġphoto Url : ĠString ?) Ġ= Ġre throw Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġobject Ġ: Ġfirebase . user . Profile Update Request Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval ĠdisplayName : ĠString ? Ġ= ĠdisplayName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġphoto URL : ĠString ? Ġ= Ġphoto Url ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġjs . update Profile ( request ). await () ĊĠĠĠ Ġ} ĊĠĠĠ Ġactual Ġsuspend Ġfun Ġverify Before Update Email ( new Email : ĠString , Ġaction Code Settings : ĠAction Code Settings ?) Ġ= Ġre throw Ġ{ Ġjs . verify Before Update Email ( new Email , Ġaction Code Settings ?. toJson ()). await () Ġ} Ċ } Ċ Ċ actual Ġclass ĠUserInfo ( val Ġjs : Ġfirebase . user . UserInfo ) Ġ{ ĊĠĠĠ Ġactual Ġval ĠdisplayName : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ Ġjs . displayName Ġ} ĊĠĠĠĠĠĠĠ Ġactual Ġval Ġemail : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ Ġjs . email Ġ} ĊĠĠĠĠĠĠĠ Ġactual Ġval ĠphoneNumber : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ Ġjs . phoneNumber Ġ} ĊĠĠĠ Ġactual Ġval Ġphoto URL : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ Ġjs . photo URL Ġ} ĊĠĠĠ Ġactual Ġval Ġprovider Id : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ Ġjs . provider Id Ġ} ĊĠĠĠ Ġactual Ġval Ġuid : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ Ġjs . uid Ġ} Ċ } Ċ Ċ actual Ġclass ĠUser MetaData ( val Ġjs : Ġfirebase . user . User Metadata ) Ġ{ ĊĠĠĠ Ġactual Ġval Ġcreation Time : ĠDouble ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ js . creation Time ?. let Ġ{ Ġ( Date ( it ). getTime () Ġ/ Ġ 1 0 0 0 . 0 ) Ġ} Ġ} ĊĠĠĠ Ġactual Ġval Ġlast SignIn Time : ĠDouble ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġre throw Ġ{ js . last SignIn Time ?. let Ġ{ Ġ( Date ( it ). getTime () Ġ/ Ġ 1 0 0 0 . 0 ) Ġ} Ġ} Ċ } Ċ