Android studio — получение коллекции от пользователя в firebase с помощью java

# #java #firebase #android-studio #firebase-realtime-database

Вопрос:

Я пытаюсь получить коллекцию «ставка» из базы данных firebase (в Android studio, используя java). это коллекция pic1 pic2

,У меня есть класс пользователя, в котором есть поля «полное имя»,»электронная почта»,»пароль». что мне делать с коллекцией «ставка»? Я пытался

 reference = FirebaseDatabase.getInstance().getReference().child("Users");  db = FirebaseFirestore.getInstance();  db.collection("Users").document(UserID).get().addOnCompleteListener(task -gt;{  if(task.isSuccessful() amp;amp; task.getResult() != null){    String number_bet = task.getResult().getString("bet");  }  } );  

Это не удалось ,и я не смог найти никаких решений , я могу получить доступ к другим полям, например

 @Override  public void onDataChange(@NonNull DataSnapshot snapshot) {  User user1 = snapshot.getValue(User.class);  if(user1 != null){  user_submit.setText(user1.bet_display);  }  }  

все, что мне нужно, это получить значение нарисованного числа (0-36) (в этом случае строка).

Спасибо!

Комментарии:

1. Пожалуйста, покажите нам, что находится внутри узла «ставка».

2. у меня внутри ничего нет, я не знаю, как хранить элементы там, это игра в рулетку, когда пользователь отправляет ставку, ставка на поле добавляется в firebase, я пытался добавить поля в пользовательский узел, но потерпел неудачу, я пытался разделить пользователя и сделать ставку на два разных графика, но фильтровать с одним и тем же идентификатором пользователя все не удалось

3. Узел «ставка» присутствует в вашей базе данных.

4. это своего рода карта, ключ-значение (ключи от 0-36) значение начинается с 0 Я добавил картинку в пост

5. Итак, вы хотите получить только содержимое узла «ставка»?

Ответ №1:

это сработало для меня.

 DatabaseReference reference=FirebaseDatabase.getInstance().getReference().child("Users");  reference.child(UserID).addListenerForSingleValueEvent(new ValueEventListener() {  @Override  public void onDataChange(@NonNull DataSnapshot snapshot) {   String str2 = snapshot.child("bet").child("" NUMBER).getValue().toString(); }  }  @Override  public void onCancelled(@NonNull DatabaseError error) { }  });  

ЧИСЛО-это путь, он рисуется каждый раз..

просто попал на правильный путь с помощью snapshot.child(какой-то ключ).child(какой-то ключ)…. GetValue().toString()