Advertisement
Guest User

Untitled

a guest
Aug 9th, 2018
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 3.15 KB | None | 0 0
  1.     private var mDatabase: FirebaseDatabase = FirebaseDatabase.getInstance()
  2.  
  3.     fun createNewUser(uid: String, user: User): Completable {
  4.         try {
  5.             val userReference: DatabaseReference = mDatabase.getReference("users").child(uid)
  6.             userReference.child("mail").setValue(user.mail)
  7.             userReference.child("name").setValue(user.name)
  8.             userReference.child("surname").setValue(user.surname)
  9.             userReference.child("gender").setValue(user.gender)
  10.             userReference.child("age").setValue(user.age)
  11.         }
  12.         catch (e: IOException){
  13.             return Completable.error(e)
  14.         }
  15.         return Completable.complete()
  16.     }
  17.  
  18.     fun getCurrentUserInfo(uid: String): Single<User>{
  19.         return Single.create<User> { singleEmitter ->
  20.                 try {
  21.                     val userReference: DatabaseReference = mDatabase.getReference("users").child(uid)
  22.                     userReference.addListenerForSingleValueEvent(object: ValueEventListener {
  23.                         override fun onCancelled(databaseError: DatabaseError) {
  24.                             throw Exception(databaseError.message)
  25.                         }
  26.  
  27.                         override fun onDataChange(dataSnapshot: DataSnapshot) {
  28.                             val mail: String = dataSnapshot.child("mail").value.toString()
  29.                             val name = dataSnapshot.child("name").value.toString()
  30.                             val surname = dataSnapshot.child("surname").value.toString()
  31.                             val gender = dataSnapshot.child("gender").value.toString()
  32.                             val age = dataSnapshot.child("age").value.toString().toInt()
  33.  
  34.                             singleEmitter.onSuccess(User(mail, name, surname, gender, age))
  35.                         }
  36.                     })
  37.                 }
  38.                 catch (e: Exception){
  39.                     singleEmitter.onError(e)
  40.                 }
  41.         }
  42.     }
  43.  
  44. //вызовы
  45.  
  46.  firebaseAuthenticationWorker.signUpNewUser(user.mail, password)
  47.                         .subscribeOn(Schedulers.io())
  48.                         .observeOn(AndroidSchedulers.mainThread())
  49.                         .flatMapCompletable { it -> firebaseRealtimeDatabaseWorker.createNewUser(it, user) }
  50.                         .subscribe(
  51.                                 {
  52.                                     view?.registeredSuccessfully()
  53.                                 },
  54.                                 {
  55.                                     error -> view?.showError(error.message)
  56.                                 }
  57.                         )
  58.  
  59. val uid = FirebaseAuthenticationWorker().getCurrentUserUid()
  60.         firebaseRealtimeDatabaseWorker.getCurrentUserInfo(uid!!)
  61.                 .subscribeOn(Schedulers.io())
  62.                 .observeOn(AndroidSchedulers.mainThread())
  63.                 .subscribe(
  64.                         {
  65.                         data -> view?.showUserInfo(data)
  66.                         },
  67.                         {
  68.                             error -> view?.showError(error.message)
  69.                         }
  70.                 )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement