如何绕过唯一的ID和检索多个自动生成的孩子 [英] How to bypass unique ID and retrieve multiple auto generated child

查看:170
本文介绍了如何绕过唯一的ID和检索多个自动生成的孩子的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用一个自动生成的子项(Estab_url子项)来检索多个子项。这是我的代码。所有我可以检索的是一个孩子和它的随机



  final DatabaseReference establishments = database.getReference(establishments); 


setsments.child(s2).child(Estab_url)。addChildEventListener(new ChildEventListener(){
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s){
if(dataSnapshot.hasChildren()){
// String value = dataSnapshot.getValue(String.class);
String sd = dataSnapshot.getKey();
Name.setText(sd);
}

}

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


$ b @Override
public void onChildRemoved(DataSnapshot dataSnapshot){

}

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

@Override
public void onCancelled(DatabaseError da tabaseError){

}
});


解决方案

如果您正在阅读每个孩子:

$ p $ establishments.child(s2).child(Estab_url)。addChildEventListener(new ChildEventListener(){
@Override
public void onChildAdded(DataSnapshot dataSnapshot,String s){
String url = dataSnapshot.child(url)。getValue(String.class);
Name.setText url);
}

如果这不是您要查找的内容,请更新您的问题重新解释了这个问题。



更新

要捕获列表中的所有URL,您需要在侦听器外部设置列表,然后将每个URL添加到列表中。

  List< String> urls = new LinkedList< String>(); 
establishments.child(s2).child(Estab_url)。addChildEventListener(new ChildEventListener(){
@Override
公共void onChildAdded(DataSnapshot dataSnapshot,String s){
String url = dataSnapshot.child(url)。getValue(String.class);
urls.add(url);
// TODO:使用URL的最新列表做一些事情

code


但请注意,您仍然无法使用侦听器的外部列表。任何需要列表最新内容的代码,都需要从内部调用/触发(在本例中) onChildAdded


I want to retrieve multiple child with an auto generated child(Estab_url child). Here is my Code. All i can retrieve is one child and its random

final DatabaseReference establishments = database.getReference("establishments");


  establishments.child(s2).child("Estab_url").addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                if (dataSnapshot.hasChildren()) {
                 //   String value = dataSnapshot.getValue(String.class);
                    String sd = dataSnapshot.getKey();
                    Name.setText(sd);
                }

            }

            @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) {

            }
        });

解决方案

If you're looking to read the URL value for each child:

establishments.child(s2).child("Estab_url").addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String s) {
        String url = dataSnapshot.child("url").getValue(String.class);
        Name.setText(url);
    }

If that is not what you're looking for, please update your question to rephrase the problem.

Update

If you'd like to catch all URLs in a list, you'd set up the list outside of the listener and then add each URL to it as it comes in:

List<String> urls = new LinkedList<String>();
establishments.child(s2).child("Estab_url").addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String s) {
        String url = dataSnapshot.child("url").getValue(String.class);
        urls.add(url);
        // TODO: do something with the up-to-date list of URLs
    }

But note that you still cannot use the list outside of the listener. Any code that needs the up-to-date content of the list, will need to be called/triggered from within (in this case) onChildAdded.

这篇关于如何绕过唯一的ID和检索多个自动生成的孩子的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆