【发布时间】:2018-02-21 17:32:53
【问题描述】:
我试图避免使用 Firebase 自然产生的异步布局。所以我试图在一个 dataonchanged 方法中完成我的方法。
我需要知道这是否可能以及如何引用 2 个节点,如您所见 ,使用一个引用。 iv尝试了类似的东西
dataBaseLastIn = FirebaseDatabase.getInstance().getReference("clockInDate" + "clockOutDate");
//和
dataBaseLastIn = FirebaseDatabase.getInstance().getReference("clockInDate");
dataBaseLastIn = FirebaseDatabase.getInstance().getReference("clockOutDate");
//将文本设置为一个引用而不是两个引用的方法
protected void onStart() {
super.onStart();
final String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
dataBaseLastIn.addValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
dateinList.clear();
dateOutList.clear();
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
Date date = postSnapshot.getValue(Date.class);
String datt = date.getDate().toString().trim();
String user = date.getCurrUser().toString().trim();
if (DateNew.equals(datt) && user.equals(uid)) {
dateinList.add(date);
} else {
dateinList.remove(date);
}
DateOut dateOut = postSnapshot.getValue(DateOut.class);
String dattOut = dateOut.getDate().toString().trim();
String userOut = dateOut.getCurrUser().toString().trim();
if (DateNew.equals(dattOut) && userOut.equals(uid)) {
dateOutList.add(dateOut);
} else {
dateOutList.remove(date);
}
}
newList = dateinList;
outList = dateOutList;
try {
totalINList();
} catch (ParseException e) {
e.printStackTrace();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
//设置文字
public void totalINList() throws ParseException {
for(int i = 0 ; i < newList.size(); i++) {
timeDuration.add(newList.get(i).getClockTime());
}
Date e = newList.get(newList.size() - 1);
String timeIn = e.getClockTime();
txtCurrentTime.setText(timeIn);
for(int i = 0 ; i < outList.size(); i++) {
timeDurationOut.add(outList.get(i).getTime());
}
DateOut f = outList.get(outList.size() - 1);
String timeOut = f.getTime();
txtCurrentTimeOut.setText(timeOut);
}
可能很简单,但我只获得了我声明的最后一个引用的值,这显然是有道理的,但想知道是否有一种方法可以同时引用两个节点
【问题讨论】:
标签: java android firebase firebase-realtime-database