gpt4 book ai didi

android - Firebase实时数据库通过uid检索数据并将其放入Variable kotlin android

转载 作者:行者123 更新时间:2023-12-02 13:12:05 27 4
gpt4 key购买 nike

如何从实时数据库中检索数据?
我想通过uid witch获得用户特定的数据搜索,它也是用户数据库的子级。
我需要检索特定用户ID的所有数据
“天”,“月”等值作为变量。

我在firebase中有以下数据:

DatabaseRow类:

data class DatabaseRow (
val id:String = "",
val names: String= "",
val lastname: String="",
val day: String="",
val month: String="",
val year:String=""
)

Firebase输入:
 val firebaseInput = DatabaseRow(user,names,lastname,day,month,year)
userRef.child("$user").setValue(firebaseInput)

检索数据,我正在使用此代码:
  auth = FirebaseAuth.getInstance()
FirebaseUser = auth.getCurrentUser()!!

val uid = auth.getUid()!!

val fireBase = FirebaseDatabase.getInstance()
userRef = fireBase.getReference("users")
val ordersRef = userRef.child("$uid").equalTo("$uid")


val valueEventListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
for (ds in dataSnapshot.children) {
val username = ds.child("day").getValue(String::class.java)
Log.d("DataBaseGetName",username)
this@Main2Activity.testTextView.text = username
}
}

override fun onCancelled(databaseError: DatabaseError) {
Log.d("Data", databaseError.getMessage()) //Don't ignore errors!
}
}
ordersRef.addValueEventListener(valueEventListener)

这是数据库规则:
{
"rules": {
".read": true,
".write": true,
"users":{
"$uid":{
".write": "auth.uid === $uid",
".read": "auth.uid === $uid"
},
"users":{
".indexOn": [".value","id","names","lastname","day","month","year"]
},
}
}
}

最佳答案

当您收到uid时,您正在尝试将其与数据库uid进行比较。 uid总是不同的。

val ordersRef = userRef.child("$uid")
val valueEventListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
val username = dataSnapshot.child("names").getValue(String.class);
Log.d("DataBaseGetName",username)
}

override fun onCancelled(databaseError: DatabaseError) {
Log.d("Data", databaseError.getMessage()) //Don't ignore errors!
}
}
ordersRef.addValueEventListener(valueEventListener)

关于android - Firebase实时数据库通过uid检索数据并将其放入Variable kotlin android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59862425/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com