Я пытаюсь получить конкретные данные из Google Firebase, которые специфичны для каждого пользователя, вошедшего в систему. В основном, я хочу получить данные «поля», перечисленные под идентификаторами пользователей, но в отдельном классе в Google Firebase база данных в реальном времени. Я хочу иметь возможность отображать данные каждого поля в виде списка в действии в моем приложении, но всякий раз, когда я пытаюсь его запустить, приложение просто закрывается.
Я уже пытался запустить приложение под ссылками на класс 'users'. Но это не сработало. Я также попытался запустить под классом 'fields', но это также не работает.
Вот мой FarmActivity.java, в котором я хочу, чтобы «просмотр списка» данных поля отображался.
public class FarmActivity extends AppCompatActivity {
ListView listView;
FirebaseDatabase database;
DatabaseReference ref;
ArrayList<String> list;
ArrayAdapter<String> adapter;
FieldInformation fieldInformation;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_farm);
listView = (ListView )findViewById(R.id.listView);
database = FirebaseDatabase.getInstance();
ref = database.getReference("Fields");
list = new ArrayList<>();
adapter = new ArrayAdapter<String>(this, R.layout.user_field_info, R.id.userInfo, list);
fieldInformation = new FieldInformation();
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds:dataSnapshot.getChildren()){
fieldInformation = ds.getValue(FieldInformation.class);
list.add(fieldInformation.getFieldName().toString() + " " + "\n"+ fieldInformation.getCrop().toString() + " ");
}
listView.setAdapter(adapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Вот мой FieldInformation.java, где я указал строки для FarmActivity
public class FieldInformation {
public String crop;
public String fieldName;
public FieldInformation(String crop, String fieldName) {
this.crop = crop;
this.fieldName = fieldName;
}
public FieldInformation(){
}
public String getCrop() {
return crop;
}
public void setCrop(String crop) {
this.crop = crop;
}
public String getFieldName() {
return fieldName;
}
public void setFieldName(String fieldName) {
this.fieldName = fieldName;
}
}