Получить данные с определенной позиции в базе данных с помощью Android Studio - PullRequest
0 голосов
/ 09 сентября 2018

Привет, люди :) Я очень новичок в программировании и только что смог разобраться с использованием RecyclerView в Android Studio.

Теперь я хотел бы получить данные с позиции x в базе данных:

Так, например, моя база данных включает в себя:

Пользователи: Макс (с полями: университет, возраст, город) Лена (с полями: университет, возраст, город)

Я не знаю, сколько пользователей и как их зовут, и я хотел бы получить все данные одного пользователя на позиции x.

Есть ли кто-нибудь, у кого есть идея, как решить эту проблему? Заранее спасибо!

EDIT: Теперь я сохранил UID от пользователя и передал его другой активности. Затем я пытаюсь получить принадлежащие данные из базы данных Firebase, но я все еще не могу показать данные из поля «университет» в TextView.

public class nextActivity extends AppCompatActivity{

String UID;
private DocumentReference myReference;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.next_activity);

//get data from intent (I checked the value of UID - getIntent worked.)
UID = getIntent().getStringExtra("uid");

// I am not sure with the following line. Is it possible to just add "UID"?
myReference = FirebaseFirestore.getInstance().document("Users/"+UID);
myReference.addSnapshotListener(new EventListener<DocumentSnapshot>() {
    @Override
    public void onEvent(@Nullable DocumentSnapshot documentSnapshot, @Nullable FirebaseFirestoreException e) {
        if (documentSnapshot.exists()) {

            long universityID = documentSnapshot.getLong("university");
            cUniversityText.setText("University"+Long.toString(universityID));

        } else if (e != null) {
            Log.w("InspiringQuote", "Exception!", e);
        }
    }
});
cUniversityText = findViewById(R.id.cuniversitytext);

}

1 Ответ

0 голосов
/ 09 сентября 2018

Я думаю, что это может помочь вам:

reference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        DataSnapshot users = dataSnapshot.child("users");
        int count=0;
        for (DataSnapshot usrchild : users.getChildren()){
           count++;
           if(count == 'Position x variable'){
              DataSnapshot university = usrchild.child("University");
              DataSnapshot age = usrchild.child("Age");
              DataSnapshot City = usrchild.child("City");
              if(!String.valueof(university.getValue()).matches("")){
              //Value is not null
              }
           }
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Toast.makeText(getActivity(), databaseError.getMessage(), Toast.LENGTH_SHORT).show();
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...