Как читать данные из Firebase на основе значения ключа в Kotlin - PullRequest
1 голос
/ 09 мая 2019

Я хочу получить данные из firebase, используя Kotlin и Android Studio.Это мой класс данных, который используется для загрузки данных в firebase:

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, где значение номера телефона соответствует заданной строке.

1 Ответ

1 голос
/ 09 мая 2019

Теперь я хочу получить данные из 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 будет имя пользователя, которое существует в заказах, где номер телефона равен данной строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...