Java 从Firebase数据库检索特定用户的数据
我正在尝试从Java 从Firebase数据库检索特定用户的数据,java,android,firebase-realtime-database,Java,Android,Firebase Realtime Database,我正在尝试从Firebase实时数据库检索数据。它起作用了。我的问题是如何从userDatabase设置文本。结果将是null,我认为它在使用userID时不会读取数据库 FirebaseUser user = firebaseAuth.getCurrentUser(); String userid = user.getUid(); txvEmail = (TextView) findViewById(R.id.txvEmail); txvEmail.setT
Firebase实时数据库
检索数据
。它起作用了。我的问题是如何从userDatabase
设置文本。结果将是null
,我认为它在使用userID
时不会读取数据库
FirebaseUser user = firebaseAuth.getCurrentUser();
String userid = user.getUid();
txvEmail = (TextView) findViewById(R.id.txvEmail);
txvEmail.setText("Welcome "+user.getEmail());
txvName = (TextView) findViewById(R.id.txvName);
txvAdd =(TextView) findViewById(R.id.txvAdd);
userDatabase = new UserDatabase();
reff = FirebaseDatabase.getInstance().getReference("Member").child(userid);
reff.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
txvName.setText(" "+userDatabase.getFirstName()+" "+userDatabase.getLastName());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
我认为您必须将模型类定义为快照的值
txvEmail = (TextView) findViewById(R.id.txvEmail);
txvEmail.setText("Welcome "+user.getEmail());
txvName = (TextView) findViewById(R.id.txvName);
txvAdd =(TextView) findViewById(R.id.txvAdd);
userDatabase = new UserDatabase();
reff = FirebaseDatabase.getInstance().getReference("Member").child(userid);
reff.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
//new code
for(DataSnapshot snap: dataSnapshot.getChildren()){
//you must define your class model to the value of snapshots
userDatabase user = snap.getValue(userDatabase.Class);
txvName.setText(" "+user.getFirstName()+" "+user.getLastName());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
我认为您必须将模型类定义为快照的值
txvEmail = (TextView) findViewById(R.id.txvEmail);
txvEmail.setText("Welcome "+user.getEmail());
txvName = (TextView) findViewById(R.id.txvName);
txvAdd =(TextView) findViewById(R.id.txvAdd);
userDatabase = new UserDatabase();
reff = FirebaseDatabase.getInstance().getReference("Member").child(userid);
reff.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
//new code
for(DataSnapshot snap: dataSnapshot.getChildren()){
//you must define your class model to the value of snapshots
userDatabase user = snap.getValue(userDatabase.Class);
txvName.setText(" "+user.getFirstName()+" "+user.getLastName());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
非常感谢你,我从来没有想到sombody回复得这么快。答案很有帮助,非常感谢。如果你愿意的话,你可以接受我的答案,提高工资。非常感谢。我从来没想过会有人回复得这么快。答案很有帮助,非常感谢。如果你愿意的话,你可以接受我的答案并提高工资