Я добавил скриншот моей базы данных Firebase ниже. Я использую geofire для получения местоположения соседних пользователей, которое хранится в электрике. Доступно. Я использовал адаптер, чтобы показать список соседних пользователей в пользовательском интерфейсе, и я могупоказать ключи, хранящиеся в электрике. Доступно.
Но я не хочу показывать ключи, а вместо этого хочу показать имена пользователей (например: -san@gmail.com). Я застрял с этимдавно, пожалуйста, может кто-нибудь сказать мне, как отобразить имена соседних имен пользователей в форме списка?
Ниже я приложил свой скриншот и код. Он обновляет значение электрика до истинного в дБ, но имя электрикапоказывает пустой в списке. Ниже я загрузил скриншот и код.
fun getElectriciansAround(){
getElectriciansArounStarted = true
val customerId: String = FirebaseAuth.getInstance().currentUser!!.uid
val driversLocation:DatabaseReference=FirebaseDatabase.getInstance().reference.child("electricianAvailable")
val geofire:GeoFire= GeoFire(driversLocation)
val geoQuery:GeoQuery = geofire.queryAtLocation(GeoLocation(mLastLocation.latitude,mLastLocation.longitude), 10000.0)
geoQuery.addGeoQueryEventListener(object : GeoQueryEventListener{
override fun onKeyEntered(key: String?, location: GeoLocation?) {
val electricianRef:DatabaseReference=FirebaseDatabase.getInstance().reference.child("users").child("Electricians").child(key!!)
driversLocation.addListenerForSingleValueEvent(object :ValueEventListener{
override fun onCancelled(p0: DatabaseError) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onDataChange(dataSnapshot: DataSnapshot) {
if(dataSnapshot.exists() && dataSnapshot.childrenCount>0){
for(i in 0 until dataSnapshot.childrenCount){
electricianRef.child(customerId).setValue(true)
getDriverName("Electricians",key!!)
electricianNames= arrayOf(mElectricianName)
val adapter= ArrayAdapter(this@CustomerElectricianHome, android.R.layout.simple_expandable_list_item_1, electricianNames)
mListViewElectricians.adapter=adapter
}
}
}
})
Run code snippet
var mElectricianName:String=""
private fun getDriverName(ElectricianName: String, key: String) {
val mDriverNameDb:DatabaseReference=FirebaseDatabase.getInstance().reference.child("users").child(ElectricianName).child(key)
mDriverNameDb.addListenerForSingleValueEvent(object :ValueEventListener{
override fun onCancelled(p0: DatabaseError) {
}
override fun onDataChange(dataSnapshot: DataSnapshot) {
if(dataSnapshot.exists()){
val map:Map<*,*> = dataSnapshot.value as Map<*,*>
if(map["name"]!=null){
mElectricianName= map["name"].toString()
}
}
}
})
}
[[введите описание изображения здесь]