现在我正在开发一个Android应用程序,并且我刚开始使用Firebase。如何在没有侦听器的情况下从Firebase数据库检索数据?
我的问题是:如何从Firebase数据库检索数据,而不使用侦听器?
在我的游戏中,我保存了所有用户的高分,当用户进入“排行榜”页面时,我需要从数据库中获取数据。
我看到了一些解决方案,这不利于我的情况。 其中之一是:
mRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String value = dataSnapshot.getValue(String.class);
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
这个解决方案是不适合我,因为我无法承受我的应用程序进入每一次高分的用户正在改变服务器,因为如果我有20000人谁在同一时间玩,然后游戏将卡住。
所以我不能使用这个监听器,因为它会让游戏非常慢。
我的目标是找到一种方法来改变高分,而不会提醒其他正在玩游戏的人,我的意思是我需要更新他自己的每个用户评分,并且当用户转到“排行榜”页面,然后我才会去服务器。
什么是正确的解决方案?
或者我可以以另一种方式使用此侦听器吗?
如果我的问题不清楚,请在评论中问我。
谢谢!
我的台词:
public static void setUserHighScoreToServer(Context context,boolean isClassic,int scoreNum)
{
com.firebase.client.Firebase mRef;
mRef= new com.firebase.client.Firebase("...");
String name = InternalStorage.getUserName(context);
String classic = "";
if(isClassic)classic="Classic";
else classic="Arcade";
com.firebase.client.Firebase mRefChild = mRef.child(name+classic);
mRefChild.setValue(String.valueOf(scoreNum));
}
我们可以看到你的火力结构? – sabsab
我没有真正的结构。我只有一些代码行,这就是每个用户的高分。然后我需要做的唯一事情就是检索它们。我将添加我的单行。 –
你试过我的回答吗? – sabsab