【问题标题】:Real time database firebase实时数据库 Firebase
【发布时间】:2021-07-01 10:38:33
【问题描述】:

我的 Android 应用程序的 Firebase 实时数据库存在一些问题,因为我看不到任何数据。我不知道为什么,我也改变了规则。 我的 Android 项目中有三个类:LogIn、SignUp(用于注册)和 Profile。当我在 SignUp 类中写“name”、“username”、“lastname”、“email”和“password”时,我可以在 Profile 中看到“name”、“lastname”和“username”,但在实时数据库。 这里有部分代码:

注册: 变量声明:

 private lateinit var dbReference: DatabaseReference
    private lateinit var firebaseDatabase: FirebaseDatabase

然后.....

   rebaseDatabase = FirebaseDatabase.getInstance()
            dbReference = firebaseDatabase.getReference("users")
            dbReference.setValue("First users")
    
     val currentDb = dbReference.child((currentUser?.uid!!))
                            currentDb.child("name").setValue(name)
                            currentDb.child("lastname").setValue(lastName)
                            currentDb.child("user").setValue(user)
                            currentDb.child("email").setValue(email)
                            currentDb.child("pass").setValue(pass)

个人资料类: 数据库 = FirebaseDatabase.getInstance() databaseReference = database?.reference!!.child("users")

   override fun onDataChange(snapshot: DataSnapshot) {
       val usernameText = findViewById<TextView>(R.id.usernameText)
                        val nameText = findViewById<TextView>(R.id.nameText)
                        val lastnameText = findViewById<TextView>(R.id.lastnameText)
                        usernameText.text =  snapshot.child("user").value?.toString()
                        nameText.text=  snapshot.child("name").value?.toString()
                        lastnameText.text=  snapshot.child("lastname").value?.toString()
            }

[在此处输入图片描述][1] [1]:https://i.stack.imgur.com/liW2z.jpg

【问题讨论】:

    标签: firebase-realtime-database


    【解决方案1】:

    你可以在你的注册中试试这个吗:

    private lateinit var dbReference: DatabaseReference
    dbReference = Firebase.database.reference;
    dbReference.child("users").setValue("First users")
    

    而不是

    private lateinit var dbReference: DatabaseReference
    private lateinit var firebaseDatabase: FirebaseDatabase.getInstance()
    dbReference = firebaseDatabase.getReference("users")
    dbReference.setValue("First users")
    

    您可能混淆了 java 和 kotlin 代码。如页面https://firebase.google.com/docs/database/android/read-and-write所示




    更新:

    我想补充一点。起初我没有看到这个,但它似乎很重要,并在页面https://firebase.google.com/docs/database/android/read-and-write中提到

    你可以试试这个

    dbReference = Firebase.database("https://soundbliss-8ba73-default-rtdb.europe-west1.firebasedatabase.app").reference;
    

    而不是

    dbReference = Firebase.database.reference;
    

    如果这不起作用,找出你的 firebase 项目的数据库 url,然后像这样将它作为参数传递给数据库函数

    dbReference = Firebase.database("database url of ur app").reference;
    

    【讨论】:

    • 谢谢。我更正了这部分,但它不起作用。我没有看到任何数据。不知道是不是问题,但是代码里有另一个数据库的名字而不是Firebase,因为位置不一样。
    猜你喜欢
    • 2020-07-05
    • 1970-01-01
    • 2017-06-03
    • 2016-12-04
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 2017-10-06
    • 2020-07-19
    相关资源
    最近更新 更多