我正在检索id下的许多值,但是它不起作用。它应该很容易,但是我被卡住了。
这是我的数据结构:
Attendance
x73aXTQHXHXHQ
current
value: "Bill Gates"
company
value: "Apple"
history
-La7wew7hdxccdcdzssf
value: 156000000001
-La7wptthd3ceeqoz34f
value: 156000000002
-La7wew7hdxccdcdzssf
value: 156000000003
我已经尝试过此代码,并且仅成功获取了子计数Output: 3
,但没有像我想要的那样子值156000000001
成功。这是我的代码,谢谢您的帮助。
if (uid != null) {
ref.child(uidKeys).child(uid).child("history").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
int countUnderHistory = (int) dataSnapshot.getChildrenCount();
long[] dataHistory = new long[countUnderHistory];
int index = 0;
for (DataSnapshot push : dataSnapshot.getChildren()) {
NonDuplicateAttendance nDa = push.getValue(NonDuplicateAttendance.class);
if (nDa != null) {
dataHistory[index] = nDa.getuHistory();
}
index++;
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
NonDuplicateAttendance 类:
package com.example.aspireone.myapplication;
public class NonDuplicateAttendance {
private long value;
public NonDuplicateAttendance(long value) {
this.value = value;
}
public long getuHistory() {
return value;
}
}
答案 0 :(得分:0)
由于您没有分享您的- name: Capture files to delete
find:
paths: /path/to/directory
file_type: file
excludes:
- "myfirst.file"
- "mysecond.file"
register: found_files
- name: Delete files
file:
path: "{{ item.path }}"
state: absent
with_items: "{{ found_files['files'] }}"
,所以我无法说出那里出了什么问题。但是要打印历史记录中的值:
NonDuplicateAttendance
修改
您的课程无法使用,因为它没有声明公共ref.child(uidKeys).child(uid).child("history").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot: dataSnapshot.getChildren()) {
System.out.println(snapshot.child("value").getValue(Long.class));
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
throw databaseError.toException(); // don't ignore errors
}
});
属性。要解决此问题:
value
更改:
public class NonDuplicateAttendance {
public long value;
public NonDuplicateAttendance() { }
public NonDuplicateAttendance(long value) {
this.value = value;
}
@Exclude
public long getuHistory() {
return value;
}
}
字段是公共的,因此SDK会将其识别为与JSON中的value
属性匹配。value
方法要从数据库中排除,因为否则SDK也会写一个getuHistory()
属性。