应用相同方法两次Firebase后变量的值

时间:2017-08-24 15:20:14

标签: java android firebase firebase-realtime-database

我有一个Firebase数据库,我想从中检索朋友ID。这非常有效,因为我在for循环中记录friendUserId时获得了正确的值。但是,方法结束时的日志仅在执行两次方法后显示正确的值。首先它显示" s",第二次显示我想要的字符串。我觉得它与处理查询的时间有关,但我不确定。我该如何解决这个问题?

public String friendUserId="s";


public void checkUserExistence() {
    mDatabase.child("Users")
            .orderByChild("username")
            .equalTo(EmailSearchQuery)
            .addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {

                    if (dataSnapshot.exists()) {
                        for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
                            friendUserId = childSnapshot.getKey();
                            Log.d("dwada",friendUserId);

                        }
                    } else
                        Toast.makeText(AddAFriend.this, "Gebruiker niet gevonden", Toast.LENGTH_LONG);
                }

                @Override
                public void onCancelled(DatabaseError firebaseError) {
                    Log.e("MainActivity", "onCancelled", firebaseError.toException());
                }
            });

Log.d("dwada",friendUserId);
}

0 个答案:

没有答案