尝试从Firebase数据库加载数据时无法将数据存储到字符串数组中

时间:2017-04-14 07:38:13

标签: android arrays function firebase firebase-realtime-database

我知道这个问题看起来令人困惑,但让我告诉你我得到了什么。 我试图从实时数据库中获取数据并尝试将其存储在数组中,这是我的功能

void fuctocreatesubname(){

    for(int i=0;i<numberofsubjects;i++){
        final int i1 = i;
        DatabaseReference namedbref = databaseTracks.child(ArrayToStoreSubpath[i]);
        namedbref.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                ArrayToStoreSubName[i1] = dataSnapshot.getValue(String.class);
                Log.v("ArraytoSubpathname",ArrayToStoreSubName[i1]);
                int j = 0;
                while(j==i1){
                    functotransferarray(ArrayToStoreSubName[j],j);
                    j++;
                }
                return;
            }


            @Override
            public void onCancelled(DatabaseError databaseError) {
            return;
            }
        });

        Log.v("Out","I AM OUT");
    }
}

在此函数中:String [] ArrayToStoreSubName = new String[8];是一个全局变量,在Logs中它显示数组已存储该值。但是当我尝试在任何其他函数中访问此数组时,该值将自动变为Null。

有什么方法可以解决这个问题吗?此外,我使用的这种方法似乎很复杂,有没有更简单的方法呢?

0 个答案:

没有答案