Как я могу получить данные из базы данных Firebase Realtime в двух разных действиях - PullRequest
0 голосов
/ 09 февраля 2019

Я настраиваю приложения для Android, которые могут показывать личные данные в двух разных действиях.Данные хранятся в моей базе данных Firebase, кто-нибудь может мне помочь?

Я уже пытался использовать addValueEventListener в обоих моих java-классах.Класс пользователя, который отвечает за отображение информации о пользователе в активности профиля пользователя, успешно извлек данные из моей базы данных, но другой по-прежнему не удалось получить данные из моей базы данных.Это код из Java-класса, который не может получить данные из моей базы данных.

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

    mAuth = FirebaseAuth.getInstance();
    mUser = mAuth.getCurrentUser();

    mDBase = FirebaseDatabase.getInstance();


    nama_lahan = (TextView) findViewById(R.id.nama_lahan);
    lebar_lahan = (TextView) findViewById(R.id.lebar_lahan);
    panjang_lahan = (TextView) findViewById(R.id.panjang_lahan);
    luas_lahan = (TextView) findViewById(R.id.luas_lahan);
    jenis_lahan = (TextView) findViewById(R.id.jenis_lahan);
    jenis_pupuk = (TextView) findViewById(R.id.jenis_pupuk);
    public void fetchLandData (String userUID){
    mAkun = mDBase.getReference("Akun").child(userUID);
    mAkun.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for(DataSnapshot landData : dataSnapshot.getChildren()){
                Lahan lahan = landData.getValue(Lahan.class);

                if(lahan != null){
                    namaLahan = lahan.getNamaLahan();
                    jns_lahan = lahan.getJenisLahan();
                    jns_pupuk = lahan.getJenisPupuk();
                    lebarLahan = lahan.getLebarLahan();
                    panjangLahan = lahan.getPanjangLahan();

                    luasLahan = panjangLahan*lebarLahan;

                    nama_lahan.setText(namaLahan);
                    jenis_pupuk.setText(jns_pupuk);
                    jenis_lahan.setText(jns_lahan);
                    lebar_lahan.setText(String.valueOf(lebarLahan));
                    panjang_lahan.setText(String.valueOf(panjangLahan));
                    luas_lahan.setText(String.valueOf(luasLahan));
                }else{
                    Toast.makeText(LandProfileActivity.this, "Gak iso pisan ``bos", Toast.LENGTH_SHORT).show();
                }
            }
        }
        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

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

Это скриншот из моего приложения, которому не удалось получить данные из моей базы FireBase и Так выглядит моя база данных Firebase

Вот некоторые ошибки, которые я скопировал из моей logcat:

2019-02-09 23:32:11.070 1645-3271/? E/ActivityTrigger: activityStartTrigger: not whiteListedcom.example.johno.test/com.example.johno.test.LandProfileActivity/1 2019-02-09 23:32:11.072 1645-3271/? E/ActivityTrigger: activityResumeTrigger: not whiteListedcom.example.johno.test/com.example.johno.test.LandProfileActivity/1 2019-02-09 23:32:11.079 1645-3065/? E/ActivityTrigger: activityResumeTrigger: not whiteListedcom.example.johno.test/com.example.johno.test.LandProfileActivity/1

1 Ответ

0 голосов
/ 09 февраля 2019

вы можете поместить прослушиватель Firebase ValueEvent в класс приложения:

public class MyApplication extends Application {

   //mAkun field declaration;
   private ValueEventListener value_event_listener;


    @Override
    public void onCreate() {
        mAkun = mDBase.getReference("Akun").child(userUID);
        mAkun.addValueEventListener(new ValueEventListener() {/*..*/}
    }
    @Override
    public void onTerminate() {
        super.onTerminate();
        mAkun.removeEventListener(value_event_listener);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...