Невозможно получить данные из базы данных Firebase в реальном времени в Android studio - PullRequest
2 голосов
/ 30 апреля 2020

Я новичок в Firebase и android студии. Я работаю над проектом, в котором мне нужно получить информацию о текущем пользователе и отобразить имя. Он выдает тост «пользователь не существует», даже если я вошел в систему, я прикрепляю все ниже. Возможно, я сделал несколько ошибок, пожалуйста, дайте мне знать. Screenshot of FIrebase Relaltiem Database:

Код для получения сведений о текущем пользователе

public class Succesfully_sign_up extends AppCompatActivity {

    DatabaseReference reff;
    TextView name;
    Button signout;
    FirebaseUser curr_user;
    String curr_user_str;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_succesfully_sign_up);
        name = findViewById(R.id.name);
         curr_user=FirebaseAuth.getInstance().getCurrentUser();
        if(curr_user!=null) 
       {
             curr_user_str = curr_user.getUid();
            reff = FirebaseDatabase.getInstance().getReference("userdetails");
            reff.child(curr_user_str).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                    HelperClass data = dataSnapshot.getValue(HelperClass.class);
                    if (data != null) {
                        name.setText(data.getFullname_hc());
                    } else {
                        Toast.makeText(Succesfully_sign_up.this, "User does't exist", Toast.LENGTH_SHORT).show();
                    }

                }

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

                }
            });
        }
         else
            {
                startActivity(new Intent(Succesfully_sign_up.this,student_signup.class));
            }

    }
}

My HelperClass

public class HelperClass {
    String fullname_hc,amizone_id_hc,mobile_num_hc,email_id_hc;
    public HelperClass()
    {

    }

    public HelperClass(String fullname_hc, String amizone_id_hc, String mobile_num_hc, String email_id_hc) {
        this.fullname_hc = fullname_hc;
        this.amizone_id_hc = amizone_id_hc;
        this.mobile_num_hc = mobile_num_hc;
        this.email_id_hc = email_id_hc;
    }

    public String getFullname_hc() {
        return fullname_hc;
    }

    public void setFullname_hc(String fullname_hc) {
        this.fullname_hc = fullname_hc;
    }

    public String getAmizone_id_hc() {
        return amizone_id_hc;
    }

    public void setAmizone_id_hc(String amizone_id_hc) {
        this.amizone_id_hc = amizone_id_hc;
    }

    public String getMobile_num_hc() {
        return mobile_num_hc;
    }

    public void setMobile_num_hc(String mobile_num_hc) {
        this.mobile_num_hc = mobile_num_hc;
    }

    public String getEmail_id_hc() {
        return email_id_hc;
    }

    public void setEmail_id_hc(String email_id_hc) {
        this.email_id_hc = email_id_hc;
    }


}

Ответы [ 2 ]

2 голосов
/ 30 апреля 2020

Как насчет просмотра детей и доступа к данным:

//the reference
reff = FirebaseDatabase.getInstance().getReference("userdetails");


//the reading

 reff.child.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

 //loop through every possible child under "userdetails"
for(DataSnapshot ds : dataSnapshot.getChildren()){

String fullName = ds.child("fullname_hc").getValue(String.class);
name.setText(fullName);

}



}

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

}
});
2 голосов
/ 30 апреля 2020

Я думаю, что вы создали базу данных вручную, ваш идентификатор пользователя 8448 .... не сгенерирован Firebase android, поэтому он показывает эту ошибку. Если нет, то, пожалуйста, поделитесь кодом создания вышеуказанной структуры базы данных.

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