嘿,我正在编写一个应用程序,该应用程序必须使用listView中项目的位置从firebase中获取特定数据。我的问题是我不知道该如何在Firebase上使用它。
对于Torneo的所有子代,我必须控制所有nameCreator。 我已经尝试过了:
public Boolean RegisterUser(Data data, final int position, final Context c){
boolean registration;
final ArrayList<String> Creator = new ArrayList<>();
databaseReference.orderByChild("Tornei").equalTo(Integer.toString(position)).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot datas: dataSnapshot.getChildren()){
Creator.add(data.child("nameCreator").getValue().toString());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
if(Creator.equals(data.getNameCreator())){
registration = false;
}else{
registration = true;
}
return registration;
}
Data是一个带有我创建的一些getter和setter的类。 position是元素在列表视图中的位置。
感谢答案。
答案 0 :(得分:2)
更改以下内容:
databaseReference.orderByChild("Tornei").equalTo(Integer.toString(position)).addListenerForSingleValueEvent(new ValueEventListener() {
对此:
databaseReference.child("Tornei").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot datas: dataSnapshot.getChildren()){
Creator.add(datas.child("nameCreator").getValue().toString());
if(Creator.equals(data.getNameCreator())){
registration = false;
}else{
registration = true;
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
然后,您将可以循环并检索nameCreator
的值
答案 1 :(得分:0)
很简单。
【步骤1 |获取快照数据并保存在全局变量中
xhtml
【步骤2 |通过循环找到目标位置】
DatabaseReference rootReference = FirebaseDatabase.getInstance().getReference();
DatabaseReference fruitsReference = rootReference.child("fruits");
DataSnapshot fruitsData;
@Override
protected void onStart() {
super.onStart();
fruitsReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshots) {
fruitsData = dataSnapshots;
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}