我一直在试图通过其ID来检索数据库中的对象检索数据永远不会从火力地堡数据库
public List<User> getCreatorOfCandidature(String userId)
{
DatabaseReference database = FirebaseDatabase.getInstance().getReference();
DatabaseReference ref = database.child("users");
final List<User> users= new ArrayList<User>();
Query query = ref.equalTo(userId);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
try{
for (DataSnapshot data : snapshot.getChildren())
{
User user = data.getValue(User.class);
setCreateurDeLaDemande(user);
users.add(user);
}
} catch (Throwable e) {
}
}
@Override public void onCancelled(DatabaseError error) { }
});
return users;
}
我不知道,如果问题是onDataChange中的查询或变量设置。
请注意,在用户对象中,定义了所有获取器和设置器以及默认构造器。
***************************编辑****************** ************************ 在这里,我打电话给我的函数来检索用户。
public void setCandidatureFinale(Candidature candidatureFinale)
{
Demande demande = ((MyApplication) context.getApplicationContext()).demandeActuelle;
demande.setCandidatureFinale(candidatureFinale);
//recuperer le createur de la candidature pour la MAJ
List<User> users=getCreatorOfCandidature(candidatureFinale.getUserId());
User user=users.get(0);
user.setNbIntervention(user.getNbIntervention()+1);
user.setGainTotal(user.getGainTotal()+candidatureFinale.getPrixPropose());
DatabaseReference database = FirebaseDatabase.getInstance().getReference();
DatabaseReference ref = database.child("users").child(candidatureFinale.getUserId());
ref.setValue(user);
Toast.makeText((Activity) context, "La candidature a été acceptée", Toast.LENGTH_SHORT).show();
}
谢谢。
发布你的数据库结构 –
@HristoStoyanov完成 – RadHisoka
用child替换equalTo,ref.child(userId); –