为更多更新加快firebase交易

时间:2018-04-03 00:55:16

标签: android firebase firebase-realtime-database

我正在制作HQ TRIVIA应用程序,对于那些不知道它是每40秒左右的实时琐事应用程序的人,一个问题出现,每个连接的人都回答它,之后它显示了有多少人回答了每个问题。

我们期望我们将同时连接50,000个用户,我们的问题是如何在合理的时间内了解每个问题的答案,以便每个人都可以看到它?

我们正在使用firebase实时数据库。

我们当前的代码,只需更新计数器1000次,需要48秒,即使它是50000次也是不可接受的

final long start = System.currentTimeMillis();
        for(int i = 0; i < 1000; i++){
            final int finalI = i;
            mainReference.child("c").runTransaction(new Transaction.Handler() {
                @Override
                public Transaction.Result doTransaction(MutableData mutableData) {
                    Integer integer = mutableData.getValue(Integer.class);
                    if (integer == null) {
                        mutableData.setValue(1);
                    }
                    else{
                        mutableData.setValue(integer + 1);
                    }

                    return Transaction.success(mutableData);
                }

                @Override
                public void onComplete(DatabaseError databaseError, boolean b,
                                       DataSnapshot dataSnapshot) {
                    if(finalI == 999){
                        long end = System.currentTimeMillis();

                        System.out.println("1000 TOOK: " + (end - start));
                    }
                }
            });
        }

我应该解决这个问题的一种方法是分发计数器,然后将它们相加,但这并不理想。

此外,我还想设置一个节点应用程序并从那里开始递增并将其发送到firebase。

可以在合理的时间内完成这个计算,这样每个人都可以用firebase看到它吗?

提前致谢

0 个答案:

没有答案