метод изменения данных FireBase в Android Studio - PullRequest
0 голосов
/ 17 мая 2019

как значение электронной почты меняется с "app-user / users"?

Состояние Firebase: enter image description here

это не веб-язык, я использую javacode и xml из androidstudio.

я пробовал подкод.

databaseReference.child(app-user).child(user).orderByChild("email").equalTo("user4~~")

Я не знаю, что делать дальше.

1 Ответ

0 голосов
/ 17 мая 2019

Чтобы получить всех пользователей, чей адрес электронной почты начинается с user4:

DatabaseReference usersRef = FirebaseDatabase.getInstance().getReference().child("app-users/users");
Query usersQuery = usersRef.orderByChild("email").startAt("user4").endAt("user4\uF7FF");

usersQuery.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot userSnapshot: dataSnapshot.getChildren()) {
            System.out.println(userSnapshot.getKey()+": "+userSnapshot.getChild("displayName").getValue(String.class));
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException();
    }
}

Чтобы понять запрос usersRef.orderByChild("email").startAt("user4").endAt("user4\uF7FF"), прочитайте его как:

  • Взять все дочерние узлыusersRef и упорядочите их по свойству email.
  • Затем найдите первый дочерний узел, который начинается с user4.
  • Затем возвращайте каждый дочерний узел, пока не найдете дочерний.это начинается с .endAt("user4\uF7FF") (или далее).

В этом \uF7FF не магический код, а только последний известный символ Unicode.Таким образом, комбинируя .startAt("user4").endAt("user4\uF7FF"), вы создаете оператор startsWith.

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