Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.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 使用异步函数分配全局变量_Java_Android_Firebase_Asynchronous - Fatal编程技术网

Java 使用异步函数分配全局变量

Java 使用异步函数分配全局变量,java,android,firebase,asynchronous,Java,Android,Firebase,Asynchronous,如何从firebase获取数据,然后将其存储在全局变量中,或者在任何情况下将其存储在不同的函数中使用 public GarbageItems(int itemNum) { String itemId = String.valueOf(itemNum); database = FirebaseDatabase.getInstance(); gameObjectRef = database.getReference().child("gameObjects");

如何从firebase获取数据,然后将其存储在全局变量中,或者在任何情况下将其存储在不同的
函数中使用

public GarbageItems(int itemNum) {
    String itemId = String.valueOf(itemNum);

    database = FirebaseDatabase.getInstance();
    gameObjectRef = database.getReference().child("gameObjects");

    itemInformationGrabber(gameObjectRef, itemId);

  }//GarbageItems(Constructor)


private void itemInformationGrabber(DatabaseReference gameObjectRef, String itemId) {
    DatabaseReference dataReference = gameObjectRef.child(itemId);

    DatabaseReference itemColor = dataReference.child("Color");
    itemColor.addValueEventListener(new ValueEventListener() {
      @Override
      public void onDataChange( DataSnapshot dataSnapshot) {
        String color = dataSnapshot.getValue(String.class);
        setColor(color);
      }

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

      }
    });
  }
这是在调用
GarbageItem

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game);
    colorTextView = findViewById(R.id.ColorTextView);
    itemTextView = findViewById(R.id.ItemNameTextView);

    GarbageItems garbageItems = new GarbageItems(1);
    Color =  garbageItems.getColor(); //this value returns null

  }
这是我的数据库模式

您可以将其存储在中,或者

请检查副本以了解为什么会出现这种行为,以及如何使用自定义回调解决此问题。