已超出Firebase数据库下载配额

时间:2017-04-27 14:05:59

标签: android firebase firebase-realtime-database

我有一个Android应用程序,每日活跃用户约1500-3000。在每次加载应用程序时,我都会获取整个firebase数据库以确保所有内容都处于同步状态(我使用Firebase's offline capabilities)。整个数据库大小约为96kb(根本不是很大)。

我使用Flame计划,它提供20GB的带宽。自本月开始以来,我已经超过了这个配额300GB(!!!)。

我可能应该改变我在应用程序加载时获取数据库的方式,但我更担心这种情况是怎样的。任何的想法?我认为这个简单的应用程序有点奇怪。

此外,Firebase的应用程序暂停如何工作?该应用程序将在下个月关闭吗?

提前致谢!

更新

以下是获取所需数据的代码:

List<QuestionItem> questionsItemList = new ArrayList<>();
FirebaseDatabase.getInstance().getReference("quests").orderByKey().addListenerForSingleValueEvent(new ValueEventListener() {

    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
            QuestionObject questionObject = snapshot.getValue(QuestionObject.class);
            questionsItemList.add(new QuestionItem(questionObject));
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        // ...
    }
});

QuestionObject只是一个由Firebase填充的普通对象。 QuestionItem构造函数使用QuestionObject并提取其属性。

从那时起,我在需要时使用questionsItemList来获取单个文档。

1 个答案:

答案 0 :(得分:0)

我想我遇到了问题...

在app加载时,我获取一些数据,然后在ArrayList中存储我需要的内容。当我需要获取其中一个文档时,我会从数据库中查询它而不是从ArrayList获取它...

这可能是浪费带宽的原因。我很快会推出更新,希望它能解决问题。