Java 使用异步函数分配全局变量
如何从firebase获取数据,然后将其存储在全局变量中,或者在任何情况下将其存储在不同的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");
函数中使用
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
}
这是我的数据库模式
您可以将其存储在中,或者请检查副本以了解为什么会出现这种行为,以及如何使用自定义回调解决此问题。