package Ġruby lich . k tmp . functions . db . posts Ċ Ċ import Ġruby lich . k tmp . features . posts . REF _ POST S Ċ import Ġfunctions Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . as Promise Ċ import Ġkotlinx . coroutines . async Ċ Ċ const Ġval ĠPARAM _ USER _ ID Ġ= Ġ" userId "; Ċ Ċ // user Ġapproved Ċ fun Ġdb Posts On Delete (): Ġdynamic Ġ= Ġfunctions . firestore ĊĠĠĠ Ġ. document ("/ $ REF _ POST S /{ id }") ĊĠĠĠ Ġ. onDelete Ġ{ Ġsnapshot , Ġcontext Ġ-> ĊĠĠĠĠĠĠĠ ĠGlobal Scope . async Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠuserId Ġ= Ġcontext . params . userId Ġas ĠString Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Repo Ġ= ĠUser Repo () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġuser Repo . get ( userId ) Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġuser . groups . forEach { Ġid Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgroup Ġ= Ġget Group ( id ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( group Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Member To Group ( userId , Ġid ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Group About New Member ( group , Ġid , ĠuserId ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Un Exist Group ( id , ĠuserId ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġapprove User ( userId ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġsend User Approved Notification ( user ) ĊĠĠĠĠĠĠĠ Ġ}. as Promise () ĊĠĠĠ Ġ} Ċ Ċ // suspend Ġfun Ġnotify Group About New Member ( Ċ // ĠĠĠ Ġgroup : ĠGroup , Ċ // ĠĠĠ ĠgroupId : ĠString , Ċ // ĠĠĠ ĠuserId : ĠString Ċ // ) Ġ{ Ċ // ĠĠĠ Ġreturn Ġsend Data Notification To Topic ( Ċ // ĠĠĠĠĠĠĠ Ġtopic Ġ= Ġgroup Topic ( groupId ), Ċ // ĠĠĠĠĠĠĠ Ġpayload Ġ= ĠGroup Notification . New Member ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠNotification Id . new _ connection _ notif , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġnew _ group _ member , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġgroup . name , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġclick _ action Ġ= ĠNotifications . CLICK _ ACTION _ OPEN _ GROUP _ MEMBER S , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġgroup . name , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠgroupName Ġ= Ġgroup . name , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġmember Id Ġ= ĠuserId , Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠgroupId Ġ= ĠgroupId Ċ // ĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠ Ġ). await () Ċ //} Ċ // ĊĊĊĊ