亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我的 databaseReference 的 valueEventListener

我的 databaseReference 的 valueEventListener

慕斯709654 2021-06-25 06:19:49
在我從特定用戶收集所有數據并顯示它的活動中,這個 onDataChange 方法會正確觸發并完美地顯示數據。final User user = new User();     databaseReference.addValueEventListener(new ValueEventListener()     {         @Override         public void onDataChange(@NonNull DataSnapshot dataSnapshot)         {             user.setFirstName(dataSnapshot.getValue(User.class).getFirstName());             view_profile_firstName.setText(user.getFirstName().toString());             user.setLastName(dataSnapshot.getValue(User.class).getLastName());             view_profile_lastName.setText(user.getLastName().toString());             user.setEmail(dataSnapshot.getValue(User.class).getEmail());             view_profile_email.setText(user.getEmail().toString());             user.setAge(dataSnapshot.getValue(User.class).getAge());             view_profile_age.setText(Integer.toString(user.getAge()));             user.setGender(dataSnapshot.getValue(User.class).getGender());             view_profile_gender.setText(user.getGender());             user.setProfileComplete(dataSnapshot.getValue(User.class).getProfileComplete());             view_profile_profileComplete.setText(String.valueOf(user.getProfileComplete()));         }         @Override         public void onCancelled(@NonNull DatabaseError databaseError)         {         }     });雖然現在我正在嘗試檢查當前用戶登錄時 profileComplete 是否為真。我希望這樣做的方式是,一旦用戶注冊了一個帳戶,他的數據就會存儲為空字符串,并且 profileComplete 設置為 false。填寫完所有數據并保存他的個人資料后,將 profileComplete 設置為 true。原因是當他們在關閉應用程序后重新登錄時,我希望它將他們帶到主屏幕而不是通過配置文件創建運行它們。
查看完整描述

1 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

您已在問題中描述了此問題的原因。因此,解決此問題的一種方法如下-


databaseReference = firebaseDatabase.getReference("Users/" + firebaseAuth.getInstance().getCurrentUser().getUid());

databaseReference.addValueEventListener(new ValueEventListener() {

    @Override

    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {


        user.setProfileComplete(dataSnapshot.getValue(User.class).getProfileComplete());


        //The profileComplete method returns TRUE, so we can skip the profile creation.

        if(user.getProfileComplete()) {

            Intent intent = new Intent(MainActivity.this, ViewProfileActivity.class);

            startActivity(intent);

        }


        //the profileComplete method returns FALSE, we must send the user to the profile creation.

        else {

            Intent intent = new Intent(MainActivity.this, ProfileActivity.class);

            startActivity(intent);

        }

    }


    @Override

    public void onCancelled(@NonNull DatabaseError databaseError) {

        Log.d("MainActivity", "COULD NOT RECIEVE PROFILECOMPLETE FROM DATABASE");

    }

});


查看完整回答
反對 回復 2021-06-30
  • 1 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號