Android 如何基于Kotlin中的键值从firebase读取数据
我想使用Kotlin和android studio从firebase检索数据。 这是我的数据类,用于将数据上载到firebase:Android 如何基于Kotlin中的键值从firebase读取数据,android,firebase,firebase-realtime-database,kotlin,Android,Firebase,Firebase Realtime Database,Kotlin,我想使用Kotlin和android studio从firebase检索数据。 这是我的数据类,用于将数据上载到firebase: class Data(var id : String, var productname : String , var username : String, var phonenumber : String, var address: String, var
class Data(var id : String,
var productname : String ,
var username : String,
var phonenumber : String,
var address: String,
var status: String)
为了向firebase添加数据,我使用了以下格式:
val ref = FirebaseDatabase.getInstance().getReference("orders")
val orderId :String = ref.push().key.toString()
val formdata = Data(orderId,
productname,
username,
phonenumber,
useraddress,
status)
ref.child(orderId).setValue(formdata).addOnCompleteListener {
Toast.makeText(applicationContext,"Order placed sucessfully", Toast.LENGTH_SHORT).show()
}
现在我想从firebase中检索数据,其中电话号码的值与给定字符串匹配
现在我想从firebase中检索数据,其中电话号码的值与给定字符串匹配
要解决此问题,需要使用查询,如以下代码行中所示:
val rootRef = FirebaseDatabase.getInstance().reference
val ordersRef = rootRef.child("orders").orderByChild("phonenumber").equalTo(givenString)
val valueEventListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
for (ds in dataSnapshot.children) {
val username = ds.child("username").getValue(String::class.java)
Log.d(TAG, username)
}
}
override fun onCancelled(databaseError: DatabaseError) {
Log.d(TAG, databaseError.getMessage()) //Don't ignore errors!
}
}
ordersRef.addListenerForSingleValueEvent(valueEventListener)
logcat中的结果将是订单中存在的用户名,其中电话号码等于给定字符串。实际上,我建议使用电话号码进行索引,这样就不需要电话号码匹配。你的应用程序中的电话号码是唯一的吗?不,Kayra,电话号码不是唯一的