Как получить значения дочернего элемента путем поиска другого значения дочернего элемента в том же родительском элементе - PullRequest
0 голосов
/ 04 ноября 2019

Я использую базу данных Firebase в реальном времени. Таким образом, в пользовательском узле он имеет весь идентификатор пользователя, а внутри пользователя идентификатор содержит всю информацию о пользователе (имя, адрес электронной почты, долгота, широта, пароль). Я хочу сделать запрос к базе данных, чтобы проверить имя пользователя, если оно идентично, и если да, то я хочу получить значения longitude и latitude от одного и того же родителя (идентификатор пользователя).

Вот моя структура базы данных

1 Ответ

0 голосов
/ 04 ноября 2019

Если вы хотите получить широту и долготу пользователя, имя которого, например, abc, попробуйте следующие строки кода:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userRef = rootRef.child("user");
Query queryByName = userRef.orderByChild("name").equalTo("anb");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            double latitude = ds.child("latitude").getValue(Double.class);
            double longitude = ds.child("longitude").getValue(Double.class);
            Log.d(TAG, latitude + ", " + longitude);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
    }
};
queryByName.addListenerForSingleValueEvent(valueEventListener);

Пересчет в вашем logcat будет:

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