Получить конкретные данные из базы Firebase - PullRequest
0 голосов
/ 30 июня 2018

Я новичок в Firebase, я пытался заглянуть в документацию и YouTube, но просто не мог понять это. У меня есть простая база данных структуры id и display_name в firebase:

 AppName{
  users{
   HzIYTbIbSzSlinF1Aa52WYUcD4E2{
    display_name: "Greg Nks"
   }
}

И я хочу, чтобы данные попадали в объект User с Id (строка) и display_name (строка) Я пытался проверить свои данные, но не могу их получить. это мой код:

public void initializeVariables(View view){
    mToolBar = view.findViewById(R.id.users_appBar);
    usersRv = view.findViewById(R.id.friends_list_rv);
    mLayoutManager= new LinearLayoutManager(view.getContext());
    myDataset = new ArrayList<>();
    mAuth = FirebaseAuth.getInstance();
    mFirebaseDatabase = FirebaseDatabase.getInstance();
    myRef = mFirebaseDatabase.getReference();

    mAuthListener = new FirebaseAuth.AuthStateListener() {
        @Override
        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
            FirebaseUser user = firebaseAuth.getCurrentUser();
            if(user!=null){

            }
        }
    };

    myRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            //remember it will called in the start of the fragment
            showData(dataSnapshot); //TODO fix the reading from firebase
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}

public void showData(DataSnapshot dataSnapshot){
    User u= dataSnapshot.getValue(User.class);
    u=null;
}

Спасибо!

1 Ответ

0 голосов
/ 30 июня 2018
  Class User {
    private String display_name;
    private String userKey;
    public User(){
    }

    public User(String name,String key){
    display_name = name;
    userKey = key;
    }
     public void setDisplay_name(Sring name)
    {
    display_name = name;
    }
    public String getDisplay_name()
    {
    return display_name;
    }
     public void setUserKey(Sring key)
    {
    userKey = key;
    }
    public String getUserKey()
    {
    return userKey;
    }
}

теперь измените этот статус

User u= dataSnapshot.getValue(User.class);

этим:

String key = datasnapshot.getKey();
    String name = datasnapshot.child('display_name').getValue().toString();
    User user = new User(name, key);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...