从 Firebase 检索数据时为空字符串

奇怪的问题:


这段代码:


xNames[index] = String.valueOf(currentAttendance.getXName());

输出:"null"


但这段代码工作正常:


xValues[index] = currentAttendance.getxValues();

输出:7


任何帮助谢谢你们,,,,谢谢,我爱你


这是我的代码段:


ref.addValueEventListener(new ValueEventListener() {

    @Override

    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {


         int count = (int) dataSnapshot.getChildrenCount();

         int[] xValues = new int[count];

         int[] yValues = new int[count];

         String[] xNames = new String[count];


         int index = 0;


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


             CurrentAttendance cA = myDatabases.getValue(CurrentAttendance.class);


             if (cA != null) {

                xNames[index] = String.valueOf(cA.getXName());

                xValues[index] = cA.getUserCount();

             }


             if (cA != null) {

                yValues[index] = cA.getCurrentAttendance();

             }

             index++

        }


   }

}


哔哔one
浏览 151回答 1
1回答

人到中年有点甜

要解决此问题,请使用以下代码行:String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();DatabaseReference uidRef = rootRef.child("Attendance").child(uid);ValueEventListener valueEventListener = new ValueEventListener() {    @Override    public void onDataChange(DataSnapshot dataSnapshot) {        String xname = dataSnapshot.child("xname").getValue(String.class);        Log.d(TAG, xname);    }    @Override    public void onCancelled(@NonNull DatabaseError databaseError) {        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!    }};uidRef.addListenerForSingleValueEvent(valueEventListener);您的 logcat 中的输出将是:Vaianaa要获取所有用户名,请使用以下代码行:DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();DatabaseReference attendanceRef = rootRef.child("Attendance");ValueEventListener valueEventListener = new ValueEventListener() {    @Override    public void onDataChange(DataSnapshot dataSnapshot) {        for(DataSnapshot ds : dataSnapshot.getChildren()) {            String xname = ds.child("xname").getValue(String.class);            Log.d(TAG, xname);        }    }    @Override    public void onCancelled(@NonNull DatabaseError databaseError) {        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!    }};attendanceRef.addListenerForSingleValueEvent(valueEventListener);输出将是:VaianaaNewton
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java