繁体   English   中英

使用singlechildevent检索Firebase数据

[英]Firebase data retrieve with singlechildevent

在此处输入图片说明

这是我的Firebase数据结构。 子“标签”是root的子。

final Query searchquery = mDatabase.child("Tags").orderByKey().limitToFirst(10).startAt(s.toString().toLowerCase()).endAt(s.toString().toLowerCase() + "\uf8ff");
searchquery.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        try {
            String u = dataSnapshot.child("article_name").getValue(String.class);
         Toast.makeText(MainActivity.this,":/ : "+u.toString(),Toast.LENGTH_LONG).show();
        }catch (Exception tg){
            Toast.makeText(MainActivity.this,tg.toString(),Toast.LENGTH_LONG).show();
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
});

我想获取子级“ article_name”的值。 我使用了上面的代码。 但是它返回null。

请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference tagsRef = rootRef.child("Tags");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String article_name = ds.child("article_name").getValue(String.class);
            Log.d("TAG", tagsRef);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
tagsRef.addListenerForSingleValueEvent(eventListener);

输出将是:

Blood Circulation
Dummy Article

另外,不要忘记为不包含任何空格的键使用名称。 所以,你需要改变blood circulationblood_circulationbloodCirculation

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM