Firebase查询中的意外行为

时间:2019-05-12 03:23:33

标签: java android firebase

我正在从事一个android项目,始终在一行中遇到错误。所以我尝试记录下来,发现代码表现异常。

从不同位置登录时,同一行代码在logcat中输出不同的值。

doc.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for(DataSnapshot data : dataSnapshot.getChildren()) {
                    //Log.d("Log1", "Query" + dataSnapshot);
                    docid = data.child("id").getValue(String.class);
                    //Log.d("Log1", "onDataChange(ID): " + docid);
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
        Log.d("Log1", "onDataChange(ID): " + docid);
        Query pat = refc.orderByChild("docname").equalTo(docid);


        pat.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                Log.d("Log3"," "+dataSnapshot);
                Log.d("Log1", "onDataChange(ID): " + docid);

                for(DataSnapshot pat: dataSnapshot.getChildren()){


                }
            }

当从侦听器内部调用时,日志行输出记录的ID,但是当从外部调用时,日志行输出null。如果有人可以帮助我并让我了解发生这种情况的原因,我将非常感激。

0 个答案:

没有答案