Advertisement
Guest User

Untitled

a guest
Feb 19th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 0.98 KB | None | 0 0
  1. fun DatabaseReference.getCurrentUser(userId: String): Observable<FUser> {
  2.     val dbRefsAll = mutableListOf<Observable<FUser>>()
  3.     val refParent = child("parents").child(userId)
  4.     dbRefsAll.add(child("parents").child(userId).dataChanges().map {
  5.         val user = it.mapParent()
  6.         refParent.keepSynced(true)
  7.         user.password = it.child("password").getValue(String::class.java) ?: ""
  8.         user
  9.     })
  10.     val refChild = child("children").child(userId)
  11.     dbRefsAll.add(refChild.dataChanges().map {
  12.         val user = it.mapChild()
  13.         refChild.keepSynced(true)
  14.         user.password = it.child("password").getValue(String::class.java) ?: ""
  15.         user
  16.     })
  17.     return Observable.combineLatest(dbRefsAll) {
  18.         it.forEach {
  19.             if (it != null) with(it as FUser) {
  20.                 if (!name.isNullOrEmpty()) {
  21.                     return@combineLatest this
  22.                 }
  23.             }
  24.         }
  25.         return@combineLatest null
  26.     }
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement