首页 > 解决方案 > 如何使 Firebase 实时数据库中的数组列表可用于所有活动?

问题描述

在应用程序开始时,我想从 Firebase 下载数据库并创建将由不同活动使用的数组列表。从 Jeff Gilfelt 对Android 全局变量的回答中,我学会了如何使全局变量可用于所有活动。但我不知道如何使用它来使 Firebase 数据库中的数组列表成为全局变量。我尝试过这种方式,如关于制作全局变量的另一个问题所述:

public class FirstFirebaseCall extends Application {

private ArrayList<ItemAndPrice> listGroceryAndPrice = new ArrayList<>();
private final FirebaseDatabase database = FirebaseDatabase.getInstance();
private final DatabaseReference dbf = database.getReference("Accounts");
private final FirebaseUser mCurrentUser = FirebaseAuth.getInstance().getCurrentUser();

@Override

public void onCreate() {
    super.onCreate();

    FirebaseDatabase.getInstance().setPersistenceEnabled(true);
    
    ChildEventListener childEventListener = dbf.child(Objects.requireNonNull(mCurrentUser).getUid()).child("Inventory")
            .addChildEventListener(new ChildEventListener() {

                ItemStockInitialSellingPrice itemInventory = new ItemStockInitialSellingPrice();

                @Override
                public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

                    itemInventory = dataSnapshot.getValue(ItemStockInitialSellingPrice.class);

                    String item = Objects.requireNonNull(itemInventory).getItem();
                    double price = itemInventory.getSellingPrice();
                    ItemAndPrice itemAndPrice = new ItemAndPrice(item, price);

                    listGroceryAndPrice.add(itemAndPrice);

它没有解决并显示错误:

IllegalStateException:默认 FirebaseApp 未在此进程 com.example.storehelper 中初始化。确保首先调用 FirebaseApp.initializeApp(Context)。

我应该在我的代码中哪里调用 FirebaseApp.initializeApp(Context)?

标签: javaandroidfirebase-realtime-databaseglobal-variables

解决方案


推荐阅读