Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从firebase实时数据库中获取字符串数组_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Java 如何从firebase实时数据库中获取字符串数组

Java 如何从firebase实时数据库中获取字符串数组,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我对android应用程序开发和firebase也是新手。我从sample节点获取数据,并获得如下所示的DataSnapshot值 {size=[小、大、特大],type=[类型1、类型2],color=[红、绿、蓝],category=[T恤、牛仔裤、毛衣]} 如果您需要帮助,任何建议都将不胜感激 要单独检索值,请使用如下代码: databaseReference = FirebaseDatabase.getInstance().getReference("/sample"); datab

我对android应用程序开发和firebase也是新手。我从sample节点获取数据,并获得如下所示的DataSnapshot值

{size=[小、大、特大],type=[类型1、类型2],color=[红、绿、蓝],category=[T恤、牛仔裤、毛衣]}
如果您需要帮助,任何建议都将不胜感激


要单独检索值,请使用如下代码:

databaseReference = FirebaseDatabase.getInstance().getReference("/sample");

databaseReference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        Log.d(TAG, "onDataChange: dataSnapshot "+dataSnapshot.getValue());
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }
});
databaseReference.child(“category”).addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
对于(int i=0;i类似的内容:

databaseReference = FirebaseDatabase.getInstance().getReference("/sample");

databaseReference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        Log.d(TAG, "onDataChange: dataSnapshot "+dataSnapshot.getValue());
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }
});

不同之处在于,在我的回答中,我循环使用
dataSnapshot.getChildren()
来获取每个示例快照。
sampleSnapshot.getValue()
调用应该返回一个
列表

Firebase对数组没有本机支持。如果存储数组,它实际上会被存储为一个“对象”使用整数作为键名

//我们寄这个

databaseReference = FirebaseDatabase.getInstance().getReference("/sample");

databaseReference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        for (DataSnapshot sampleSnapshot: dataSnapshot.getChildren()) {
            Log.d(TAG, "onDataChange: sampleSnapshot "+sampleSnapshot.getKey()+" = "+sampleSnapshot.getValue());
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        throw databaseError.toException(); // don't ignore errors
    }
});
//Firebase存储这个

['hello', 'world']

//试试这个

{0: 'hello', 1: 'world'}
@覆盖
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
youNameArray=newarraylist();
对于(DataSnapshot快照:DataSnapshot.getChildren()){
String data=snapshot.getValue(String.class);
添加(数据);
}
Log.v(“asdf”,“第一个数据:+youNameArray.get(0));
}

您想如何检索这些值?您想从数据库中获取哪些值?我想在android的不同微调器上设置每个字符串数组。嘿@ninjajack,如果您觉得我的答案有用,请单击旁边的V-type按钮将其标记为正确,这有助于堆栈溢出未来的读者,我将不胜感激。加油njajax,你能试试上面的代码并告诉你在类目列表中存储了什么吗?它的工作我做了比特改变类。添加(DasnPasPop.Stand(Stras.ValueOf(i))。GETValk(String。class));很好,你可以使用类似的代码来解决问题的其他部分。但是,如果我想同时获取所有字符串数组,该怎么办呢?非常感谢您的帮助:D@ninjajack啊,我的
字符串不好。valueOf(i)
,太好了,你发现了:)
FirebaseDatabase database = FirebaseDatabase.getInstance();     
    
    DatabaseReference refence = database.getReference();
    


    refence.addValueEventListener(new ValueEventListener()
            {

                @Override
                public void onDataChange(DataSnapshot snapshot) {
                    // TODO Auto-generated method stub
                    
                    ArrayList array= new ArrayList<>();
                    
                    
                       for (DataSnapshot ds : snapshot.getChildren()){
                            
                           String data = ds.getValue().toString();
                           
                            array.add(data);
                                                        
                         
                            
                           

                            
                        }

                       System.out.println(array); 
                    
                }

                @Override
                public void onCancelled(DatabaseError error) {
                    // TODO Auto-generated method stub
                    
                }
        
            });
        
String data = ds.getValue().toString();