package Ġcom . example . pe an ut book . fake app ka . firebase čĊč Ċ import Ġcom . google . firebase . database . Firebase Database č Ċ import Ġjava . math . BigDecimal čĊč Ċ /** čĊ Ġ* ĠMain Ġaccess Ġpoint Ġto ĠFirebase ĠReal - time ĠDatabase . ĠHandles Ġinitialization . čĊ Ġ* čĊ Ġ* Ġ@ author ĠJose f ĠH ru Å¡ ka Ġ( j ose f @ step up labs . io ) čĊ Ġ*/ č Ċ object ĠDatabase Ġ{ čĊčĊĠĠĠ Ġprivate Ġvar Ġm Initialized Ġ= Ġfalse čĊčĊĠĠĠ Ġfun Ġget (): ĠFirebase Database Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= ĠFirebase Database . getInstance () čĊĠĠĠĠĠĠĠ Ġif Ġ(! m Initialized ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . set Persistence Enabled ( true ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Initialized Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// sync () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn Ġdb čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġconnect () Ġ{ čĊĠĠĠĠĠĠĠ Ġget (). go Online () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġdisconnect () Ġ= Ġget (). go Offline () čĊčĊĠĠĠ Ġfun Ġstop Sync ( groupId : ĠString ) Ġ{ čĊĠĠĠĠĠĠĠ Ġsync Group ( groupId , Ġfalse ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġsync Group ( groupId : ĠString , Ġsynced : ĠBoolean ) Ġ{ čĊĠĠĠĠĠĠĠ Ġkeep Sync ed (" groups /$ groupId ", Ġsynced ) čĊĠĠĠĠĠĠĠ Ġkeep Sync ed (" members /$ groupId ", Ġsynced ) čĊĠĠĠĠĠĠĠ Ġkeep Sync ed (" transactions /$ groupId ", Ġsynced ) čĊĠĠĠĠĠĠĠ Ġkeep Sync ed (" changes /$ groupId ", Ġsynced ) čĊĠĠĠĠĠĠĠ Ġkeep Sync ed (" permissions /$ groupId ", Ġsynced ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġkeep Sync ed ( path : ĠString , Ġsynced : ĠBoolean ) Ġ{ čĊĠĠĠĠĠĠĠ Ġget (). reference . child ( path ). keep Sync ed ( sync ed ) čĊĠĠĠ Ġ} č Ċ } čĊč Ċ private Ġvar Ġg Latest Exchange Rates : ĠMap < String , ĠBigDecimal > Ġ= Ġmap Of () čĊč Ċ fun Ġlatest Exchange Rates (): ĠMap < String , ĠBigDecimal > Ġ= Ġg Latest Exchange Rates čĊ