gpt4 book ai didi

android - 应用程序启动时的 Firebase 需要超过 3 秒才能加载数据

转载 作者:搜寻专家 更新时间:2023-11-01 08:29:33 24 4
gpt4 key购买 nike

我在 firebase 中有我的只读数据,大约 50KB。我需要有关应用程序启动的完整数据。为此,我在 onCreate 方法中编写了以下代码

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference();
Log.i("FIREBASE", "Before Firebase Call");
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.i("FIREBASE", "Call Completed");
// do my work i.e build my UI
}

@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(context, "Please Check your Internet connection", Toast.LENGTH_LONG);
}
});

现在我的问题是,Firebase 获取数据的时间超过 4 秒。在上面的代码中,两个日志语句之间有 4 秒的间隔,即“Before Firebase Call”和“Call Completed”

我什至在真实设备上进行了测试,即使在那里也需要至少 3 秒。我在这里遗漏了什么吗?

最佳答案

正如 Doug Stevenson 所说:当您第一次加载数据时,或者如果您所在的世界的某个地方与托管 Firebase 服务的地方不同,应该会有一点延迟。

我建议您创建一个加载屏幕(启动画面)以在显示主 Activity 之前加载所有数据。在此加载 Activity 中,您可以使用 keepSynced 方法加载所有数据:

FirebaseDatabase.getInstance().getReference().keepSynced(true);

此方法会将您的整个数据库下载到磁盘缓存中。当您显示 Main Activity 时,FIrebase 将从该缓存中加载数据。

通常,加载屏幕会在屏幕上停留 1000-1500 毫秒。但是既然你说数据需要 3 秒,我建议创建一个加载屏幕来播放 3000 毫秒的动画(或一组结合了最后 3000 毫秒的动画)。如果您不会制作动画,可以观看Chet Haase's DevBytes video .

关于android - 应用程序启动时的 Firebase 需要超过 3 秒才能加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41939769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com