为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哔哔one 2022-03-10 10:58:39
奇怪的问题:这段代码: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++        }   }}
查看完整描述

1 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

要解决此问题,请使用以下代码行:


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);

输出将是:


Vaianaa

Newton


查看完整回答
反对 回复 2022-03-10
  • 1 回答
  • 0 关注
  • 150 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号