firebase数据库下载量很大

时间:2017-06-19 12:18:20

标签: android firebase firebase-realtime-database

我只有200 B的实时数据库,我的应用程序大约有200个。 500名活跃用户。

在应用程序中,我查询数据库以将数据添加到某些arraylist:

$ ./attach 30389
pid=30389
attach ret=0
cont ret=0

waitpid ret=30389.
WIFSTOPPED
SIGTRAP cont ret=0 err=Success

waitpid ret=30389.
WIFSIGNALED
SIGTRAP cont ret=-1 err=No such process
^C

我有9位听众。数据消耗大约是。每天100 MB! 按照这个速度,我很快就会达到10GB /月的限制。如果我正确的话,每次用户打开应用程序时都应该加载这些数据,并且每次我从服务器远程更改数据时(这种情况很少发生,例如一个月内发生2次)。如果打开应用程序加载,让我们说,1 KB,那么这意味着应该每天打开应用程序超过100.000次,并且这至少不是一个数量级。< / p>

我的数据库是这样的:

public class FirebaseApplication extends Application {

...

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

...

 //reference to the root of the cloud database
    mDatabase =  FirebaseDatabase.getInstance().getReference();

    mNamesPoloSubRoot = mDatabase.child("PoloniexNames");

        //listen for change in the cloud. If there is some additional item, 
    //add it to the list populated from hard coded items.

                mNamesPoloSubRoot.addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot snapshot) {

                        GenericTypeIndicator<List<String>> gt = new GenericTypeIndicator<List<String>>() {};
                        List names = snapshot.getValue(gt);

                        if( names == null ) {
                            //Log.v(LOG_TAG_FIREBASE,"No extra coins");
                        }
                        else {
                           // Log.v(LOG_TAG_FIREBASE,"extra coins!" );


                            additionalNamesPolo = new ArrayList<String>(names);
                            //attach the new coins at the bottom of the hard coded list
                            NamesPoloniexA.addAll(additionalNamesPolo);
                        }
                    }
                    @Override
                    public void onCancelled(DatabaseError error) {
                        // Failed to read value
                        Log.e(LOG_TAG_FIREBASE, "Failed to read value.", error.toException());
                    }
                });

...

 }

}

请注意,应用程序调用的许多子项通常都是null(因为没有数据可以远程添加到应用程序中),因此整个数据库甚至可以为空,但有些数据似乎无论如何都要下载(数据库的大小,即使为null,也不为零。)

我做错了什么?或者它是Firebase的问题?

0 个答案:

没有答案