Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private var mDatabase: FirebaseDatabase = FirebaseDatabase.getInstance()
- fun createNewUser(uid: String, user: User): Completable {
- try {
- val userReference: DatabaseReference = mDatabase.getReference("users").child(uid)
- userReference.child("mail").setValue(user.mail)
- userReference.child("name").setValue(user.name)
- userReference.child("surname").setValue(user.surname)
- userReference.child("gender").setValue(user.gender)
- userReference.child("age").setValue(user.age)
- }
- catch (e: IOException){
- return Completable.error(e)
- }
- return Completable.complete()
- }
- fun getCurrentUserInfo(uid: String): Single<User>{
- return Single.create<User> { singleEmitter ->
- try {
- val userReference: DatabaseReference = mDatabase.getReference("users").child(uid)
- userReference.addListenerForSingleValueEvent(object: ValueEventListener {
- override fun onCancelled(databaseError: DatabaseError) {
- throw Exception(databaseError.message)
- }
- override fun onDataChange(dataSnapshot: DataSnapshot) {
- val mail: String = dataSnapshot.child("mail").value.toString()
- val name = dataSnapshot.child("name").value.toString()
- val surname = dataSnapshot.child("surname").value.toString()
- val gender = dataSnapshot.child("gender").value.toString()
- val age = dataSnapshot.child("age").value.toString().toInt()
- singleEmitter.onSuccess(User(mail, name, surname, gender, age))
- }
- })
- }
- catch (e: Exception){
- singleEmitter.onError(e)
- }
- }
- }
- //вызовы
- firebaseAuthenticationWorker.signUpNewUser(user.mail, password)
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .flatMapCompletable { it -> firebaseRealtimeDatabaseWorker.createNewUser(it, user) }
- .subscribe(
- {
- view?.registeredSuccessfully()
- },
- {
- error -> view?.showError(error.message)
- }
- )
- val uid = FirebaseAuthenticationWorker().getCurrentUserUid()
- firebaseRealtimeDatabaseWorker.getCurrentUserInfo(uid!!)
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(
- {
- data -> view?.showUserInfo(data)
- },
- {
- error -> view?.showError(error.message)
- }
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement