我正在尝试从Firestore中检索一个我已存储并在活动中显示它的Events对象。我将文档定位在文档引用中,然后使用setEvent方法将文档(转换为Event对象)设置为" thisEvent"变量在开始时声明。
但是,当我使用事件中的信息设置TextViews时,它不起作用,因为thisEvent为null。我已经设置了一个if / else来查看它是否为null,因此每次运行应用程序时,都不显示事件,而是HEY THERE是if语句的事件标题。我已经按照他们网站上列出的Firestore文档进行了操作,但似乎我没有按照正确的方式进行操作。
public class EventViewActivity extends AppCompatActivity {
//declaring FireBase variables
private FirebaseFirestore mFStore;
private FirebaseAuth mAuth;
//declaring user,team and event variables
private String user_id;
private String team_id;
private String TAG = "EventViewActivity";
String event_id;
Event thisEvent;
//declaring and binding UI elements
@BindView(R.id.event_title_text) TextView event_title;
@BindView(R.id.event_date_text)TextView event_date;
@BindView(R.id.event_time_text)TextView event_time;
@BindView(R.id.event_description_text)TextView event_description;
@BindView(R.id.event_location_text)TextView event_location;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_event_view);
ButterKnife.bind(this);
mAuth = FirebaseAuth.getInstance();
mFStore = FirebaseFirestore.getInstance();
Intent intent = getIntent();
event_id = intent.getExtras().getString("event_id");
Log.d(TAG, "eventid: " + event_id);
//retrieve event information
DocumentReference eventInfoRef = mFStore.collection("Teams/YfLa27NWaaQSfNwhZPgX/Events").document("MhEg0kRdJEedf7YnwvBi");
eventInfoRef.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
setEvent(documentSnapshot.toObject(Event.class));
}
});
if (thisEvent !=null){
event_title.setText(this.thisEvent.getTitle());
event_date.setText(thisEvent.getDate().toString());
event_time.setText(thisEvent.getTime());
event_description.setText(thisEvent.getDescription());
event_location.setText(thisEvent.getLocation());}
else {
event_title.setText("HEY THERE");
}
}
public void setEvent(Event event){
this.thisEvent = event;
}
}