簡體   English   中英

我如何從這樣的數據庫中檢索數據?

[英]How can i retrieve data from such database?

我想檢索值和時間,但我無法到達那里,它一直在日志中為我提供 null 值。 我想知道是否有必要獲得 unique_id,如果有,我該怎么做。

實時數據庫截圖

valueRef = myRef.child("user_id").child("ASSETS").child("cash at bank");

view.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        valueRef.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                for (DataSnapshot ds : dataSnapshot.getChildren()) {
                    Long value = ds.child("values").getValue(Long.class);
                    Log.d(TAG, "onChildAdded: the value is" + value);
                }
            }

            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
    }
});

我認為這將是解決您的問題的正確方法:

@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
    Long value = ds.child("values").getValue(Long.class);
}

在您的參考資料中,您已經在研究具有唯一ID的新子級並獲取其DataSnapshot 您所要做的就是引用它的子項,即values ,並獲取其值。

塔爾·巴德Tal Barder的回答正確。

盡管還有另一種方法:

valueRef = myRef.child("user_id").child("ASSETS").child("cash at bank");

view.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            valueRef.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChanged(DataSnapshot dataSnapshot, String s) {
                    for (DataSnapshot ds : dataSnapshot.getChildren()) {
                        Long value = ds.child("values").getValue(Long.class);
                        Log.d(TAG, "onChildAdded: the value is" + value);
                    }
                }

                ...
        }
    });

這仍然使用您的循環,我只是將Listener更改為ValueEventListener ,它將返回包含所有子項的DataSnapshot

Tal的回答中提到的一種方法應該是大多數情況下采用的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM