【发布时间】:2019-06-21 07:12:01
【问题描述】:
我是 Firebase 的新手,我不明白为什么我无法获取 tMAX 和相同变量中的数据(tMAX 始终返回为 0.0 且与 0 相同)。我尝试了很多我发现的东西,但是在调试时我得到了相同的结果。 我究竟做错了什么? 这是从数据库读取的正确方法吗?我错过了什么吗?
Strings.java - 这是我阅读的地方
public class Settings {
double tMAX;
int NumNodes;
int LastNode;
int Source;
int same;
DatabaseReference mFirebaseDatabase;
FirebaseDatabase mFirebaseInstance;
String userID;
public Settings() {
mFirebaseInstance=FirebaseDatabase.getInstance();
userID= FirebaseAuth.getInstance().getCurrentUser().getUid();
mFirebaseDatabase=mFirebaseInstance.getReference().child("user").child(userID).child("1");
mFirebaseDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NotNull DataSnapshot snapshot) {
for(DataSnapshot snapshot1: snapshot.getChildren()){
if(snapshot != null){
User user = snapshot1.getValue(User.class);
if(user != null){
tMAX = user.getDuration();
}
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e("Settings", "loadPost:onCancelled", databaseError.toException());
}
});
NumNodes=31;
mFirebaseDatabase.child("2").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NotNull DataSnapshot snapshot) {
for(DataSnapshot snapshot1: snapshot.getChildren()){
if(snapshot != null){
User2 user = snapshot1.getValue(User2.class);
if(user != null){
same=user.getSourceDestination().get(0);
if(same==1){
NumNodes+=1;
Source=0;
LastNode=0;
}
else{
NumNodes+=2;
Source=0;
LastNode=32;
}
}
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e("Settings", "loadPost:onCancelled", databaseError.toException());
}
});
}
}
这就是我的数据库的外观 https://imgur.com/a/5HTHsfT
【问题讨论】:
标签: android firebase firebase-realtime-database