【问题标题】:Reading from Firebase Database doesn't work but there is no error message (Kotlin)从 Firebase 数据库读取不起作用,但没有错误消息 (Kotlin)
【发布时间】:2018-05-16 18:57:02
【问题描述】:

我已经设置了基本的FirebaseDatabase 代码,应用程序运行良好,没有任何错误消息,但根据console.log,编译器不会进入实际的Firebase 代码作为console log TAG在logcat 中找不到。由于没有错误消息,因此不确定如何解决此问题。这是基本代码:

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
//import com.google.firebase.FirebaseError
import com.google.firebase.database.*
//import com.google.firebase.auth.FirebaseAuth

class RecipeGridView : AppCompatActivity() {

   private var db: DatabaseReference? = null
   private var fbdb: FirebaseDatabase? = null
   private var ref: DatabaseReference? = null

   override fun onCreate(savedInstanceState: Bundle?) {
       super.onCreate(savedInstanceState)
       setContentView(R.layout.activity_recipe_grid_view)
       Log.d("TAG", "ON CREATE");

       fbdb = FirebaseDatabase.getInstance()
       ref = fbdb!!.getReference("cookies")

       ref!!.addChildEventListener(object: ChildEventListener {
           override fun onChildChanged(snapshot: DataSnapshot?, p1: String?) {
            var myDataSnapshot = snapshot!!.getValue()

            Log.d("TAG", "THIS DOESN'T SHOW IN LOGCAT!!!");

            /*for later...
            val children = snapshot!!.children

            print(snapshot.children.count().toString())
            print(p1)

            children.forEach{
                print(it.toString())
            }
    */
        }

        override fun onChildMoved(p0: DataSnapshot?, p1: String?) {}

        override fun onChildRemoved(p0: DataSnapshot?) {}

        override fun onCancelled(error: DatabaseError) {
            print(error)
            Log.d("TAG", "ON ERROR");

        }

        override fun onChildAdded(p0: DataSnapshot?, p1: String?) {}

        }) //END FB CODE
}
}

我很乐意发布日志,但它真的很长而且没有显示任何错误。

依赖项是:

implementation 'com.google.firebase:firebase-database:10.0.1'
implementation 'com.google.firebase:firebase-core:10.0.1'

此外,maven 代码包含在 gradle 中:

maven {
        url "https://maven.google.com" // Google's Maven repository
    }

对如何进行的想法表示赞赏。就像我说的,如果需要,我会发布日志:)

【问题讨论】:

  • 尝试使用 Log.e ,
  • 还是什么都没有,只有 ONCREATE 日志显示...
  • 请检查 Firebase 数据库规则。您是否有权读取/写入您的 Firebase 数据库?
  • 是的,有权限。我已经成功地将同一个数据库与 Xcode 一起使用。

标签: android-studio firebase-realtime-database kotlin


【解决方案1】:

好的,现在知道了。代码应该在onChildAdded() 而不是onChildChange() 函数中。就是这样!现在得到数据了:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-07
    • 2018-06-26
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    • 2021-05-10
    • 2011-09-17
    • 1970-01-01
    相关资源
    最近更新 更多