java - 使用 rxjava2 获取 firebase 数据快照
问题描述
我正在尝试使用 RxJava2 从 Firebase 数据库中获取用户分数。我没有收到任何错误,logcat 很清楚。订阅者的任何方法都不起作用(未在 logcat 上显示文本)。
override fun getUserScore(){
val query = scoreReference.child(FirebaseAuth.getInstance().currentUser!!.uid)
rxfirebase(query).subscribeOn(Schedulers.io()).subscribe { object: Subscriber<DataSnapshot>{
override fun onComplete() {
Log.d("UserScoreComplete", "complete")
}
override fun onSubscribe(s: Subscription?) {
Log.d("UserScoreSubscribe", "subscribe")
}
override fun onNext(t: DataSnapshot?) {
val score = t?.getValue(Score::class.java)
Log.d("UserScore", score?.score)
}
override fun onError(t: Throwable?) {
Log.d("UserScoreError", t.toString())
}
} }
}
override fun rxfirebase(ref: Query): Observable<DataSnapshot>{
return Observable.create { emitter ->
ref.addListenerForSingleValueEvent(object: ValueEventListener {
override fun onCancelled(p0: DatabaseError) {
Log.d("rxFirebase error", p0.message)
emitter.onError(p0.toException())
}
override fun onDataChange(p0: DataSnapshot) {
emitter.onNext(p0)
emitter.onComplete()
解决方案
推荐阅读
- xml - Replace PATH element with SED of multiple xml file in bash
- flutter - jQuery.param in Dart
- android - Flutter video_player unable to play a few videos from file
- jenkins - Jenkinsfile: how to checkout multiple branch sources in multibranch pipeline?
- c# - 服务器端 Blazor 中的构造函数外部的依赖注入
- python - django 提出的“函数”对象不可下标,但本地 python 不能
- sql - PySpark 将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围
- python - DateTime 范围为“长格式”,具有精确的 15 分钟(“点钟季度”)间隔和持续时间?
- python - 删除列表 python 列表中的重复值
- python - 在 Python Webscraping 中使用 BeautifulSoup 获取 JSON 数据