【发布时间】:2018-01-29 00:54:48
【问题描述】:
我正在使用 Firebase、Kotlin 和 RxJava 开发应用程序。
基本上,我需要做的是使用 Firebase 的 Auth 注册用户,如果用户选择了一张照片,则上传照片,然后将用户从 Firebase 保存到数据库中。
直到现在我都有这个
RxFirebaseAuth.createUserWithEmailAndPassword(auth, email, password)
.map { authResult ->
user.uid = authResult.user.uid
authResult.user.uid
}
.flatMap<UploadTask.TaskSnapshot>(
{ uid ->
if (imageUri != null)
RxFirebaseStorage.putFile(mFirebaseStorage
.getReference(STORAGE_IMAGE_REFERENCE)
.child(uid), imageUri)
else
Maybe.empty<UploadTask.TaskSnapshot>()
}
)
.map { taskSnapshot -> user.photoUrl = taskSnapshot.downloadUrl!!.toString() }
.map {
RxFirebaseDatabase
.setValue(mFirebaseDatabase.getReference("user")
.child(user.uid), user).subscribe()
}
.doOnComplete { appLocalDataStore.saveUser(user) }
.toObservable()
当用户选择一张照片时它工作正常,但当它没有被选择时,其他地图被忽略,因为我返回了 Maybe.empty()。
我应该如何实现它以使用或不使用用户照片?
谢谢。
【问题讨论】:
标签: android firebase firebase-authentication kotlin rx-java