onData变量出于onDataChange方法

时间:2016-07-12 14:41:36

标签: java android firebase firebase-realtime-database

我目前正在开发一个Android应用程序,其中我使用firebase作为数据库,但是当我在connection="DRIVER={SQL Server Native Client 11.0};SERVER=%s;DATABASE=%s;UID=%s;PWD=%s"%((db["SQL_SERVER"],db["db"],db["user"],db["pwd"])) conn=pypyodbc.connect(connection) cur=conn.cursor() print cur.getTypeInfo(93) 方法中获取变量并将它们分配给全局变量时,我得到了空变量但是当我在onDataChange方法中调用这些变量时,它们不是空的。

onDataChange

1 个答案:

答案 0 :(得分:0)

即使我遇到同样的问题。只需将onDataChange中的arraylist值传递给另一个方法即可。

 myFirebaseRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            Log.d("FIREBASE",String.valueOf(dataSnapshot.getChildrenCount()));


            if (dataSnapshot.exists()){

                for (DataSnapshot snapshot : dataSnapshot.getChildren()){

                    Log.d("FIREBASE ","FOR LOOP");


                    //Arraylist codes
                    iosTitleVal.add(snapshot.getKey().toString());
                    iosDescVal.add(snapshot.getValue().toString());
                    Log.d("FIREBASE","ArrayList KEY IS "+iosTitleVal);

                 //Passing arraylist values to another method 
                    storageContainer(iosTermTitle,iosTermDesc);

                }

            }else {

                Log.d("FIREBASE","NO DATAS");

            }

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

这是我的 storageContainer 方法。在这个方法中,我将arrraylist值传递给RecyclerView Adapter的构造函数。

public void storageContainer(ArrayList<String> arrayListTitle, ArrayList<String> arrayListDesc){


   iosTitleStorage = arrayListTitle;
   iosDescStorage = arrayListDesc;


    //No null exception here...
     Log.d("FIREBASE"," My Data KEY "+iosTitleStorage +" and VAL "+iosDescStorage);

 }

我希望它会起作用