package Ġall anks r . com . firebase . realtime Database Ċ Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . google . firebase . database . Database Reference Ċ Ċ class ĠDatabase ViewModel Ġprivate Ġconstructor ( private Ġval Ġdatabase Repository : ĠDatabase Repository ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġfun Ġdatabase GetInstance (): ĠDatabase Reference Ġ{ ĊĠĠĠĠĠĠ Ġreturn Ġdatabase Repository . firebase Database Instance (). reference ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd User ( data : ĠDataSet ){ ĊĠĠĠĠĠĠĠ Ġdatabase Repository . setData ( data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Doc ( userId : ĠString , Ġdata : ĠDataSet ){ ĊĠĠĠĠĠĠĠ Ġdatabase Repository . update Data ( userId , Ġdata ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Doc ( userId : ĠString ){ ĊĠĠĠĠĠĠ Ġdatabase Repository . delete Data ( userId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġclass ĠDatabase ViewModel Factory ( private Ġval Ġdatabase Repository : ĠDatabase Repository ): ViewModel Provider . Factory { ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel ?> Ġcreate ( model Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDatabase ViewModel ( database Repository ) Ġas ĠT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }