第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何在代碼中的確切位置將數據從火庫提取到Android工作室?

如何在代碼中的確切位置將數據從火庫提取到Android工作室?

30秒到達戰(zhàn)場 2022-09-28 16:03:02
有沒有辦法從代碼所在的火庫中提取數據?我目前有 valueEventListeners,但它們都在它們下面的代碼之后運行,從而使以下代碼無效。我希望能夠準確地在代碼所在的位置提取一個值,而不是以后。到目前為止,我還沒有在網上找到任何關于此的內容。我在代碼中的問題的一個很好的例子:public void onItemClick(AdapterView<?> l, View v, final int position, long id) {        FirebaseAuth mAuth = FirebaseAuth.getInstance();        FirebaseUser user = mAuth.getCurrentUser();        final String uid = user.getUid();        databaseReference.addValueEventListener(new ValueEventListener() {            @Override            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {                cCESnapshot = dataSnapshot.child(uid).child("currChallenges").child(challengeList.get(position));            }            @Override            public void onCancelled(@NonNull DatabaseError databaseError) {            }        });        Intent intent = new Intent();        intent.setClass(this, ChallengeView.class);        intent.putExtra("snapshot", cCESnapshot.toString());        intent.putExtra("name", challengeList.get(position));        startActivity(intent);    }cCE快照為空,因為意向在值事件接收器之前運行。
查看完整描述

2 回答

?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

是異步的,因此使用檢索到的數據的唯一方法是 inside ,例如:onDataChange()onDataChange()


databaseReference.addValueEventListener(new ValueEventListener() {

        @Override

        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            cCESnapshot = dataSnapshot.child(uid).child("currChallenges").child(challengeList.get(position));


    Intent intent = new Intent();

    intent.setClass(this, ChallengeView.class);

    intent.putExtra("snapshot", cCESnapshot.toString());

    intent.putExtra("name", challengeList.get(position));

    startActivity(intent);

        }


        @Override

        public void onCancelled(@NonNull DatabaseError databaseError) {


        }

    });


查看完整回答
反對 回復 2022-09-28
?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

這是一個異步操作,當數據到達時,將觸發(fā)回調。您的代碼將按順序執(zhí)行,這就是為什么您在 中未獲得任何值的原因。onDataChangestartActivtycCESnapshot

在偵聽器內移動代碼。startActivity

但要小心,因為每次調用點擊偵聽器時,您都會添加一個 value 事件偵聽器。這樣,您每次單擊都會有多個調用,因此多個 .onItemClickonDataChangestartActivities

相反,我建議使用僅在數據發(fā)生一次更改后才會觸發(fā)的。addListenerForSingleValueEvent


查看完整回答
反對 回復 2022-09-28
  • 2 回答
  • 0 關注
  • 86 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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