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

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

在firebase android開發中通過循環從子節點檢索特定數據

在firebase android開發中通過循環從子節點檢索特定數據

拉丁的傳說 2022-12-15 11:04:44
我正在嘗試從 firebase 數據庫中獲取特定值。請先查看代碼。這是數據庫參考DatabaseReference databasedeposit= FirebaseDatabase.getInstance().getReference("Deposit");totalb.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {            databasedeposit.addListenerForSingleValueEvent (new ValueEventListener() {                @Override                public void onDataChange(DataSnapshot dataSnapshot) {                    abc.clear();                    Integer total = 0;                    for (DataSnapshot ds : dataSnapshot.getChildren()) {                        ADeposit bazar = ds.getValue(ADeposit.class);                        Integer cost = Integer.valueOf(bazar.getAmount());                        total = total + cost;                        abc.add(bazar);                    }                    Query queryn=databasedeposit.orderByChild("name").equalTo("Rabbani");                    queryn.addListenerForSingleValueEvent(new ValueEventListener() {                        @Override                        public void onDataChange(DataSnapshot dataSnapshot) {                            Integer n_total=0;                            for (DataSnapshot ds : dataSnapshot.getChildren()) {                                ADeposit bazar = ds.getValue(ADeposit.class);                                Integer c = Integer.valueOf(bazar.getAmount());                                n_total = n_total + c;                            }                        }                        @Override                        public void onCancelled(DatabaseError databaseError) {                        }                    });                    DepositList adapter = new DepositList(admininterface.this,abc);                    deposit.setAdapter(adapter);        }    });}現在總成本很容易計算出來。但是來自用戶的特定數據,例如此處的“Rabbani”,用于檢索他的總金額我創建了一個查詢,但我無法從對話框之類的部分訪問 n_total 值??匆幌聰祿旖Y構:
查看完整描述

1 回答

?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

您不需要嵌套的偵聽器來獲取Rabbani支出。由于此數據已存在于 中databasedeposit,因此您可以if在現有循環中使用 來跟蹤該數據:


databasedeposit.addListenerForSingleValueEvent (new ValueEventListener() {

    @Override

    public void onDataChange(DataSnapshot dataSnapshot) {


        abc.clear();

        Integer total = 0;

        Integer n_total=0;


        for (DataSnapshot ds : dataSnapshot.getChildren()) {

            ADeposit bazar = ds.getValue(ADeposit.class);

            Integer cost = Integer.valueOf(bazar.getAmount());

            total = total + cost;

            abc.add(bazar);


            if ("Rabbani".equals(ds.child("name").getValue(String.class)) {

                n_total = n_total + cost;

            }

        }


        System.out.println("total: "+total+", n_total: "+n_total);


        ...


    }



    @Override

    public void onCancelled(DatabaseError databaseError) {

        throw databaseError.toException(); // don't ignore errors

    }

}); ;


查看完整回答
反對 回復 2022-12-15
  • 1 回答
  • 0 關注
  • 90 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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