实时数据库 Firebase
Posted
技术标签:
【中文标题】实时数据库 Firebase【英文标题】:Real time database 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
【问题讨论】:
【参考方案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,因为位置不一样。以上是关于实时数据库 Firebase的主要内容,如果未能解决你的问题,请参考以下文章
如何将我的 Firebase 实时数据库转移到 Firebase Cloud Firestore