java - 如何使 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)?
解决方案
推荐阅读
- python - 如何在 Windows 上为 Anaconda 配置 Sublime Text 3?
- node.js - AUTH0 登录后在生产中将我发送到 https://localhost/callback 而不是我的网站
- python-3.x - 在python内存中读取大量文件(20k+)错误
- regex - Javascript 正则表达式匹配字符串,仅出现一次 __ 字符
- node.js - 快速登录:UnhandledPromiseRejectionWarning:未处理的承诺拒绝
- java - 来自 Java 客户端的 Python Sockets 字节解码
- javascript - 未设置 Chrome 存储空间
- amazon-web-services - 从 ECS 集群中的另一个 docker 容器进行通信
- c++ - CUDA:constexpr if 函数中的“在非 void 函数末尾缺少返回语句”
- python-3.x - 如何在列表内的列表中使用循环