Android Firebase 数据库加载速度更快

Jar*_*red 1 performance android loading firebase firebase-realtime-database

我正在使用适用于 Android 的 Firebase 数据库,但遇到了一些速度问题。检索许多自定义对象时需要很长时间(例如每个对象需要 1/2 - 1 秒)。我正在加载一堆存储在 FB 中的 Poll 对象。

这是我目前如何为每个民意调查做的一个例子:

pollRef = rootRef.child(getString(R.string.poll_ref)).child(myPollIds.get(polls.size()));

        pollRef.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if (isAdded()) {
                    Poll poll = dataSnapshot.getValue(Poll.class);
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试加载单独下载我需要使用的投票的特定部分。它变得相当复杂。有没有更好的方法来有效地只从数据库中获取部分对象?

例如,我只想要对象的突出显示部分。 在此处输入图片说明

提前致谢!:)

Dou*_*son 5

Firebase 实时数据库不能让您像希望的那样挑选单个属性。从较大的结构中仅获取数据切片的最有效方法是将所有相关位复制到一个完全不同的结构中,然后请求其他结构。这种重复对于优化的 NoSQL 数据库来说是典型的 - 通常会根据需要多次复制数据,以针对应用程序中常见的特定查询进行优化。这样做的缺点是当您更新复制的值之一时,您需要注意将其复制到它可以存在的所有其他位置。

这种数据组织策略的名称称为反规范化