package Ġen chant . flare Ċ Ċ import Ġkotlinx . coroutines . flow . Flow ĊĊ Ċ /** Ċ * ĠThe ĠDocument Ġinterface Ġrepresents Ġa Ġ Ċ * Ġmap Ġthat Ġholds Ġall Ġof Ġthe Ġdocument 's Ġ Ċ * Ġmetadata . Ġ Ċ */ Ċ Ċ interface ĠDocument Ġ: ĠMap < String , ĠAny ?> Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠ Ġ* ĠThe Ġid Ġcorresponds Ġto Ġthe Ġname Ġof ĊĠĠĠ Ġ* Ġthe Ġdocument Ġ/ Ġhow Ġit Ġwill Ġbe Ġaccessed ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġid : ĠString ĊĊĠĠĠ Ġval Ġmetadata : ĠMap < Fire store Metadata , ĠAny ?> Ċ } Ċ Ċ /** Ċ * ĠThis Ġinterface Ġcorresponds Ġto Ġa Ġlist Ġof Ġdocuments . Ċ */ Ċ Ċ interface ĠCollection Ġ: ĠList < Document > Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠ Ġ* ĠThe Ġid Ġis Ġthe Ġname Ġof Ġthe ĠCollection Ġin Ġthe Ġdatabase ĊĠĠĠ Ġ* Ġcontaining Ġthe Ġlist Ġof Ġdocuments . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġid : ĠString ĊĠĠĠ Ġval Ġdocuments : ĠList < Document > ĊĠĠĠ Ġval Ġmetadata : ĠMap < Fire store Metadata , ĠAny > Ċ } Ċ Ċ /** Ċ * ĠFirebase ĠFire store Ġis Ġa ĠNo SQL Ġcloud Ġdatabase Ġto Ġstore Ċ * Ġand Ġsync Ġdata Ġfor Ġclient - Ġand Ġserver - side Ġdevelopment . Ċ */ Ċ Ċ interface ĠFirebase Fire store Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠ Ġ* ĠReads Ġthe Ġdata Ġand Ġstarts Ġlistening Ġto Ġthe Ġdocument ĊĠĠĠ Ġ* Ġreferenced Ġby Ġthis Ġpath . ĊĠĠĠ Ġ*/ ĊĊĠĠĠ Ġfun Ġget Document ( path : ĠString , Ġmetadata Changes : ĠBoolean Ġ= Ġfalse ): ĠFlow < Document > ĊĠĠĠĠĊĠĠĠ Ġ/** ĊĠĠĠ Ġ* ĠReads Ġthe Ġdata Ġof Ġthe Ġdocument Ġat Ġthe Ġgiven Ġpath Ġand Ġsource ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġget Document Once ( path : ĠString , Ġsource : ĠSource Ġ= ĠSource . Default ): ĠDocument ĊĠĠĠ Ġsuspend Ġfun Ġget Document Once OrNull ( path : ĠString , Ġsource : ĠSource Ġ= ĠSource . Default ): ĠDocument ? ĊĊĠĠĠ Ġ/** ĊĠĠĠ Ġ* ĠOver writes Ġthe Ġdocument Ġat Ġthis Ġpath Ġwith Ġthe Ġgiven Ġchanges , ĊĠĠĠ Ġ* ĠSee Ġ" Changes " Ġinterface Ġbelow . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġset Document ( ĊĠĠĠĠĠĠĠ Ġpath : ĠString , ĊĠĠĠĠĠĠĠ Ġmap : ĠMap < String , ĠAny ? >, ĊĠĠĠĠĠĠĠ Ġmerge : ĠMerge Ġ= ĠMerge . None , ĊĠĠĠĠĠĠĠ Ġchanges : Ġ( Changes . () Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠ Ġ* ĠUpdates Ġfields Ġin Ġthe Ġdocument Ġreferred Ġto Ġby Ġthis Ġobject ĊĠĠĠ Ġ* Ġwith Ġthe Ġgiven Ġchanges . ĠSee Ġ" Changes " Ġinterface Ġbelow . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġupdate Document ( ĊĠĠĠĠĠĠĠ Ġpath : ĠString , ĊĠĠĠĠĠĠĠ Ġmap : ĠMap < String , ĠAny ? >, ĊĠĠĠĠĠĠĠ Ġchanges : Ġ( Changes . () Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġsuspend Ġfun Ġdelete Document ( path : ĠString ) ĊĊĊĠĠĠ Ġ/** ĊĠĠĠ Ġ* ĠReturns Ġthe Ġa Ġcollection Ġof Ġdocument Ġsnapshots Ġy ielded Ġby Ġthe Ġgiven Ġquery Ġat Ġthe Ġgiven Ġpath . ĊĠĠĠ Ġ* ĠThe Ġsyntax Ġof Ġthis Ġmight Ġlook Ġlike Ġthe Ġfollowing : ĊĠĠĠ Ġ* Ġfire store . get Collection Once (" cities ") Ġ{ ĊĠĠĠ Ġ* ĠĠ Ġwhere ĠEqual To (" state ", Ġ" CA ") ĊĠĠĠ Ġ* Ġ} ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġget Collection Once ( ĊĠĠĠĠĠĠĠ Ġpath : ĠString , Ġsource : ĠSource Ġ= ĠSource . Default , Ġquery : Ġ( Query . () Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġ): ĠCollection ĊĊĊĠĠĠ Ġ/** ĊĠĠĠ Ġ* ĠSimilar Ġto Ġget Collection Once () Ġexcept Ġit Ġreturns Ġa Ġlistener Ġto ĠĊĠĠĠ Ġ* Ġthe Ġcol lec iton Ġof Ġdocuments Ġy ielded Ġby Ġthe Ġgiven Ġquery Ġat Ġthe Ġgiven Ġpath . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Collection ( ĊĠĠĠĠĠĠĠ Ġpath : ĠString , Ġmetadata Changes : ĠBoolean Ġ= Ġfalse , Ġquery : Ġ( Query . () Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġ): ĠFlow < Collection > ĊĊĊĠĠĠ Ġsuspend Ġfun Ġget Named Query Once ( ĊĠĠĠĠĠĠĠ Ġname : ĠString , Ġsource : ĠSource Ġ= ĠSource . Default , Ġquery : ĠQuery . () Ġ-> ĠUnit ĊĠĠĠ Ġ): ĠCollection ĊĊĊĠĠĠ Ġfun Ġget Named Query ( name : ĠString , Ġmetadata Changes : ĠBoolean Ġ= Ġfalse , Ġquery : ĠQuery . () Ġ-> ĠUnit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠFlow < Collection > ĊĊĊĊĠĠĠ Ġsuspend Ġfun Ġbatch ( batch : ĠWrite Batch . () Ġ-> ĠUnit ) ĊĠĠĠ Ġsuspend Ġfun Ġtransaction ( transaction : ĠTransaction . () Ġ-> ĠUnit ) ĊĊĠĠĠ Ġval Ġconfig : ĠConfig ĊĊĠĠĠ Ġinterface ĠConfig Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsettings : ĠFirebase Fire store Settings ĊĠĠĠĠĠĠĠ Ġfun Ġuse Em ulator ( host : ĠString , Ġport : ĠInt ) ĊĠĠĠĠĠĠĠ Ġsuspend Ġfun Ġload Bundle ( data : ĠByteArray ) ĊĠĠĠĠĠĠĠ Ġsuspend Ġfun Ġsnapshots In Sync ( action : Ġ() Ġ-> ĠUnit ) ĊĠĠĠĠĠĠĠ Ġsuspend Ġfun Ġclear Persistence () ĊĠĠĠĠĠĠĠ Ġsuspend Ġfun Ġenable Network ( enabled : ĠBoolean ) ĊĠĠĠĠĠĠĠ Ġsuspend Ġfun Ġterminate () ĊĠĠĠĠĠĠĠ Ġsuspend Ġfun ĠwaitFor Pending Writes () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinstance : ĠFirebase Fire store Ġget () Ġ= Ġfire store Instance ĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( app : ĠFirebase App ) Ġ= Ġget Fire store Instance ( app ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ enum Ġclass ĠSource Ġ{ ĠCache , ĠDefault , ĠServer Ġ} Ċ Ċ sealed Ġclass ĠMerge Ġ{ ĊĠĠĠ Ġobject ĠNone Ġ: ĠMerge () ĊĠĠĠ Ġobject ĠAll Ġ: ĠMerge () ĊĠĠĠ Ġclass ĠFields ( var arg Ġval Ġfields : ĠString ) Ġ: ĠMerge () Ċ } Ċ Ċ enum Ġclass ĠDirection Ġ{ ĠAsc ending , ĠDesc ending Ġ} ĊĊ Ċ /** Ċ * ĠThis Ġinterface Ġrepresents Ġa Ġquery Ġthat Ġyou Ġcan Ġread Ġor Ġlisten Ġto . Ċ * ĠYou Ġcan Ġalso Ġconstruct Ġref ined ĠQuery Ġobjects Ġby Ġadding Ġfilters Ġand Ġordering . Ġ Ċ */ Ċ interface ĠQuery Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠ Ġ* ĠCreates Ġand Ġreturns Ġa Ġnew ĠQuery Ġthat Ġonly Ġreturns Ġthe ĊĠĠĠ Ġ* Ġfirst Ġmatching Ġdocuments Ġup Ġto Ġthe Ġspecified Ġnumber . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġlimit ( limit : ĠLong , Ġto Last : ĠBoolean Ġ= Ġfalse ) ĊĊĠĠĠ Ġ/** ĊĠĠĠ Ġ* ĠCreates Ġand Ġreturns Ġa Ġnew ĠQuery Ġthat 's Ġaddition ally Ġsorted Ġby Ġthe ĊĠĠĠ Ġ* Ġspecified Ġfield , Ġoptionally Ġin Ġdescending Ġorder Ġinstead Ġof Ġascending . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠorderBy ( field : ĠString , Ġdirection : ĠDirection Ġ= ĠDirection . Ascending ) ĊĊĠĠĠ Ġ/** ĠĊĠĠĠ Ġ* ĠCreates Ġand Ġreturns Ġa Ġnew ĠQuery Ġwith Ġthe Ġadditional Ġfilter Ġthat ĊĠĠĠ Ġ* Ġdocuments Ġmust Ġcontain Ġthe Ġspecified Ġfield , Ġthe Ġvalue Ġmust ĊĠĠĠ Ġ* Ġbe Ġan Ġarray , Ġand Ġthat Ġthe Ġarray Ġmust Ġcontain Ġthe Ġprovided Ġvalue ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġwhere Array Contains ( field : ĠString , Ġvar arg Ġvalue : ĠAny ) ĊĊĠĠĠ Ġ/** ĠĊĠĠĠ Ġ* ĠCreates Ġand Ġreturns Ġa Ġnew ĠQuery Ġwith Ġthe Ġadditional Ġfilter ĊĠĠĠ Ġ* Ġthat Ġdocuments Ġmust Ġcontain Ġthe Ġspecified Ġfield Ġand Ġthe ĊĠĠĠ Ġ* Ġvalue Ġshould Ġbe Ġequal Ġto Ġthe Ġspecified Ġvalue . ĠĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġwhere EqualTo ( field : ĠString , Ġvalue : ĠAny ) ĊĊĠĠĠ Ġ/** ĠĊĠĠĠ Ġ* ĠCreates Ġand Ġreturns Ġa Ġnew ĠQuery Ġwith Ġthe Ġadditional Ġfilter ĊĠĠĠ Ġ* Ġthat Ġdocuments Ġmust Ġcontain Ġthe Ġspecified Ġfield Ġand Ġthe Ġvalue ĊĠĠĠ Ġ* Ġdoes Ġnot Ġequal Ġthe Ġspecified Ġvalue . ĠĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġwhere Not EqualTo ( field : ĠString , Ġvalue : ĠAny ) ĊĊĠĠĠ Ġ/** ĠĊĠĠĠ Ġ* ĠCreates Ġand Ġreturns Ġa Ġnew ĠQuery Ġwith Ġthe Ġadditional Ġfilter ĊĠĠĠ Ġ* Ġthat Ġdocuments Ġmust Ġcontain Ġthe Ġspecified Ġfield Ġand Ġthe Ġvalue ĊĠĠĠ Ġ* Ġshould Ġbe Ġgreater Ġthan Ġthe Ġspecified Ġvalue . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġwhere GreaterThan ( field : ĠString , Ġvalue : ĠAny ) ĊĊĠĠĠ Ġ/** ĠĊĠĠĠ Ġ* ĠCreates Ġand Ġreturns Ġa Ġnew ĠQuery Ġwith Ġthe Ġadditional Ġfilter ĊĠĠĠ Ġ* Ġthat Ġdocuments Ġmust Ġcontain Ġthe Ġspecified Ġfield Ġand Ġthe Ġvalue ĊĠĠĠ Ġ* Ġshould Ġbe Ġgreater Ġthan Ġor Ġequal Ġto Ġthe Ġspecified Ġvalue . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġwhere GreaterThan OrEqualTo ( field : ĠString , Ġvalue : ĠAny ) ĊĊĠĠĠ Ġ/** ĠĊĠĠĠ Ġ* ĠCreates Ġand Ġreturns Ġa Ġnew ĠQuery Ġwith Ġthe Ġadditional Ġfilter ĊĠĠĠ Ġ* Ġthat Ġdocuments Ġmust Ġcontain Ġthe Ġspecified Ġfield Ġand Ġthe ĊĠĠĠ Ġ* Ġvalue Ġmust Ġequal Ġone Ġof Ġthe Ġvalues Ġfrom Ġthe Ġprovided Ġlist . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġwhere In ( field : ĠString , Ġvar arg Ġvalue : ĠAny ) ĊĊĠĠĠ Ġ/** ĠĊĠĠĠ Ġ* ĠCreates Ġand Ġreturns Ġa Ġnew ĠQuery Ġwith Ġthe Ġadditional Ġfilter ĊĠĠĠ Ġ* Ġthat Ġdocuments Ġmust Ġcontain Ġthe Ġspecified Ġfield Ġand Ġthe Ġvalue ĊĠĠĠ Ġ* Ġdoes Ġnot Ġequal Ġany Ġof Ġthe Ġvalues Ġfrom Ġthe Ġprovided Ġlist . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġwhere NotIn ( field : ĠString , Ġvar arg Ġvalue : ĠAny ) ĊĠĠĊĠĠĠ Ġ/** ĠĊĠĠĠ Ġ* ĠCreates Ġand Ġreturns Ġa Ġnew ĠQuery Ġwith Ġthe Ġadditional Ġfilter ĊĠĠĠ Ġ* Ġthat Ġdocuments Ġmust Ġcontain Ġthe Ġspecified Ġfield Ġand Ġthe Ġvalue ĊĠĠĠ Ġ* Ġshould Ġbe Ġless Ġthan Ġthe Ġspecified Ġvalue . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġwhere LessThan ( field : ĠString , Ġvalue : ĠAny ) ĊĊĠĠĠ Ġ/** ĠĊĠĠĠ Ġ* ĠCreates Ġand Ġreturns Ġa Ġnew ĠQuery Ġwith Ġthe Ġadditional Ġfilter ĊĠĠĠ Ġ* Ġthat Ġdocuments Ġmust Ġcontain Ġthe Ġspecified Ġfield Ġand Ġthe Ġvalue ĊĠĠĠ Ġ* Ġshould Ġbe Ġless Ġthan Ġor Ġequal Ġto Ġthe Ġspecified Ġvalue . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġwhere LessThan OrEqualTo ( field : ĠString , Ġvalue : ĠAny ) Ċ } Ċ Ċ interface ĠWrite Batch Ġ{ ĊĠĠĠ Ġfun Ġset ( path : ĠString , Ġdata : ĠMap < String , ĠAny >, Ġmerge : ĠMerge Ġ= ĠMerge . None ) ĊĠĠĠ Ġfun Ġupdate ( path : ĠString , Ġdata : ĠMap < String , ĠAny >) ĊĠĠĠ Ġfun Ġdelete ( path : ĠString ) Ċ } Ċ Ċ interface ĠTransaction Ġ{ ĊĠĠĠ Ġfun Ġget ( path : ĠString ): ĠDocument ĊĠĠĠ Ġfun Ġset ( path : ĠString , Ġdata : ĠMap < String , ĠAny >, Ġmerge : ĠMerge Ġ= ĠMerge . None ) ĊĠĠĠ Ġfun Ġupdate ( path : ĠString , Ġdata : ĠMap < String , ĠAny >) ĊĠĠĠ Ġfun Ġdelete ( path : ĠString ) Ċ } Ċ Ċ data Ġclass ĠFirebase Fire store Settings ( ĊĠĠĠ Ġval Ġcache Size : ĠLong Ġ= Ġ 1 0 4 8 5 7 6 0 0 , ĊĠĠĠ Ġval Ġhost : ĠString Ġ= Ġ"", ĊĠĠĠ Ġval Ġpersistence Enabled : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġval Ġssl Enabled : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġvar Ġlogging Enabled : ĠBoolean Ġ= Ġfalse Ċ ) Ċ Ċ /** Ċ * ĠThis Ġclass Ġrepresents Ġthe Ġtype Ġof Ġerror Ġ Ċ * Ġthat ĠFl are 's ĠFirebase Fire store Ġthrows . Ċ * Ċ * Ġ@ param Ġcode Ġthe Ġcode Ġthat Ġis Ġincluded Ġin Ġthe Ġerror Ċ * Ġ@ param Ġdescription Ġa Ġstring Ġthat Ġprovides Ġa Ġdescription Ġof Ġthe Ġerror Ċ * Ġin Ġaddition Ġto Ġcode Ċ */ Ċ class ĠFire store Exception ( val Ġcode : ĠCode , Ġval Ġdescription : ĠString ? Ġ= Ġnull ) Ġ: ĊĠĠĠ ĠException (" Firebase Ġfire store Ġoperation Ġfailed Ġwith Ġcode Ġ${ code . name }: Ġ$ description ") Ġ{ ĊĊĠĠĠ Ġenum Ġclass ĠCode Ġ{ ĊĠĠĠĠĠĠĠ ĠAbort ed , ĊĠĠĠĠĠĠĠ ĠAlready Exists , ĊĠĠĠĠĠĠĠ ĠData Loss , ĊĠĠĠĠĠĠĠ ĠDead line Exceeded , ĊĠĠĠĠĠĠĠ ĠFailed Precondition , ĊĠĠĠĠĠĠĠ ĠInternal , ĊĠĠĠĠĠĠĠ ĠInvalid Argument , ĊĠĠĠĠĠĠĠ ĠNotFound , ĊĠĠĠĠĠĠĠ ĠOut Of Range , ĊĠĠĠĠĠĠĠ ĠPermission Denied , ĊĠĠĠĠĠĠĠ ĠResource Ex hausted , ĊĠĠĠĠĠĠĠ ĠUn authenticated , ĊĠĠĠĠĠĠĠ ĠUn available , ĊĠĠĠĠĠĠĠ ĠUn implemented , ĊĠĠĠĠĠĠĠ ĠUnknown ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġthrow Code ( code : ĠCode , Ġdescription : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠFire store Exception ( code , Ġdescription ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ enum Ġclass ĠFire store Metadata Ġ{ ĊĊĠĠĠ Ġ// Android , ĠiOS , ĠJS ĊĠĠĠ ĠPending Writes , ĊĠĠĠ ĠFrom Cache , ĊĊĠĠĠ Ġ// Jvm ĊĠĠĠ ĠCreate Time , ĊĠĠĠ ĠRead Time , ĊĠĠĠ ĠUpdate Time Ċ } Ċ Ċ abstract Ġclass ĠMap Document ( private Ġval Ġdata : ĠMap < String , ĠAny ?> ) Ġ: ĠDocument Ġ{ ĊĠĠĠ Ġoverride Ġval Ġentries : ĠSet < Map . Entry < String , ĠAny ? >> Ġ= Ġdata . entries ĊĠĠĠ Ġoverride Ġval Ġkeys : ĠSet < String > Ġ= Ġdata . keys ĊĠĠĠ Ġoverride Ġval Ġsize : ĠInt Ġ= Ġdata . size ĊĠĠĠ Ġoverride Ġval Ġvalues : Ġkotlin . collections . Collection < Any ?> Ġ= Ġdata . values ĊĠĠĠ Ġoverride Ġfun Ġcontains Key ( key : ĠString ): ĠBoolean Ġ= Ġdata . containsKey ( key ) ĊĠĠĠ Ġoverride Ġfun Ġcontains Value ( value : ĠAny ?): ĠBoolean Ġ= Ġdata . contains Value ( value ) ĊĠĠĠ Ġoverride Ġfun Ġget ( key : ĠString ): ĠAny ? Ġ= Ġdata [ key ] ĊĠĠĠ Ġoverride Ġfun ĠisEmpty (): ĠBoolean Ġ= Ġdata . isEmpty () Ċ } Ċ Ċ abstract Ġclass ĠList Collection ( override Ġval Ġdocuments : ĠList < Document >) Ġ: ĠCollection Ġ{ ĊĠĠĠ Ġoverride Ġval Ġsize : ĠInt Ġget () Ġ= Ġdocuments . size ĊĊĠĠĠ Ġoverride Ġfun Ġcontains ( element : ĠDocument ): ĠBoolean Ġ= Ġdocuments . contains ( element ) ĊĊĠĠĠ Ġoverride Ġfun Ġcontains All ( elements : Ġkotlin . collections . Collection < Document >): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġelements . contains All ( elements ) ĊĊĠĠĠ Ġoverride Ġfun Ġget ( index : ĠInt ): ĠDocument Ġ= Ġdocuments [ index ] ĊĊĠĠĠ Ġoverride Ġfun ĠindexOf ( element : ĠDocument ): ĠInt Ġ= Ġdocuments . indexOf ( element ) ĊĊĠĠĠ Ġoverride Ġfun ĠisEmpty (): ĠBoolean Ġ= Ġdocuments . isEmpty () ĊĊĠĠĠ Ġoverride Ġfun Ġiterator (): ĠIterator < Document > Ġ= Ġdocuments . iterator () ĊĊĠĠĠ Ġoverride Ġfun Ġlast IndexOf ( element : ĠDocument ): ĠInt Ġ= Ġdocuments . lastIndexOf ( element ) ĊĊĠĠĠ Ġoverride Ġfun Ġlist Iterator (): ĠList Iterator < Document > Ġ= Ġdocuments . list Iterator () ĊĠĠĠ Ġoverride Ġfun Ġlist Iterator ( index : ĠInt ): ĠList Iterator < Document > Ġ= Ġdocuments . list Iterator ( index ) ĊĊĠĠĠ Ġoverride Ġfun Ġsub List ( from Index : ĠInt , Ġto Index : ĠInt ): ĠList < Document > Ġ= ĊĠĠĠĠĠĠĠ Ġdocuments . sub List ( from Index , Ġto Index ) Ċ } ĊĊ Ċ /** Ċ * Ġ Ċ * Ċ * Ċ */ Ċ interface ĠChanges Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠ Ġ* ĠReturns Ġa Ġspecial Ġvalue Ġthat Ġcan Ġbe Ġused Ġwith Ġset () Ġor Ġupdate () Ġthat ĊĠĠĠ Ġ* Ġtells Ġthe Ġserver Ġto Ġremove Ġthe Ġgiven Ġelements Ġfrom Ġany Ġarray Ġvalue ĊĠĠĠ Ġ* Ġthat Ġalready Ġexists Ġon Ġthe Ġserver . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġarray Remove ( field : ĠString , Ġvar arg Ġelements : ĠAny ) ĊĊĠĠĠ Ġ/** ĊĠĠĠ Ġ* ĠReturns Ġa Ġspecial Ġvalue Ġthat Ġcan Ġbe Ġused Ġwith Ġset () Ġor Ġupdate () Ġthat ĊĠĠĠ Ġ* Ġtells Ġthe Ġserver Ġto Ġunion Ġthe Ġgiven Ġelements Ġwith Ġany Ġarray Ġvalue Ġthat ĊĠĠĠ Ġ* Ġalready Ġexists Ġon Ġthe Ġserver . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġarray Union ( field : ĠString , Ġvar arg Ġelements : ĠAny ) ĊĊĠĠĠ Ġ/** ĊĠĠĠ Ġ* ĠReturns Ġa Ġsentinel Ġfor Ġuse Ġwith Ġupdate () Ġto Ġmark Ġa Ġfield Ġfor Ġdeletion . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdelete ( field : ĠString ) ĊĊĠĠĠ Ġ/** ĊĠĠĠ Ġ* ĠReturns Ġa Ġspecial Ġvalue Ġthat Ġcan Ġbe Ġused Ġwith Ġset () Ġor Ġupdate () Ġthat ĊĠĠĠ Ġ* Ġtells Ġthe Ġserver Ġto Ġincrement Ġthe Ġfield 's Ġcurrent Ġvalue Ġby Ġthe Ġgiven Ġvalue . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġincrement ( field : ĠString , Ġamount : ĠDouble ) ĊĠĠĠ Ġfun Ġincrement ( field : ĠString , Ġamount : ĠLong ) ĊĊĠĠĠ Ġ/** ĊĠĠĠ Ġ* ĠReturns Ġa Ġsentinel Ġfor Ġuse Ġwith Ġset () Ġor Ġupdate () Ġto Ġinclude Ġa Ġserver - generated ĊĠĠĠ Ġ* Ġtimestamp Ġin Ġthe Ġwritten Ġdata . ĊĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġserver Timestamp ( field : ĠString ) Ċ } Ċ Ċ internal Ġexpect Ġval Ġfire store Instance : ĠFirebase Fire store Ċ internal Ġexpect Ġfun Ġget Fire store Instance ( app : ĠFirebase App ): ĠFirebase Fire store