我正在从Firebase Cloud Firestore读取数据并将其填充到我的UI中。以下是我的数据结构:
以下是我从Cloud Firestore读取数据并填充UI的代码。我注意到,对于我的TextView
,该项目在显示"测试Q 2之前暂时为空。"我读数据不正确吗?在一瞬间,TextView
填充了Firebase中的问题,但我发现奇怪的是它是短暂的null并且在UI中可以看到null:
mStoreBaseRef = FirebaseFirestore.getInstance();
mStoreSelectedPollRef = mStoreBaseRef.collection(POLL_LABEL).document(pollID);
mStoreSelectedPollRef.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
Poll selectedPoll = documentSnapshot.toObject(Poll.class);
String pollQuestion = selectedPoll.getQuestion();
mPollQuestion.setText(pollQuestion);
mPollQuestion.setTypeface(null, Typeface.BOLD);
}
});
答案 0 :(得分:0)
数据是从Firestore异步加载的。根据您的连接速度和状态,可能需要几百毫秒到几秒才能获得数据。
因此填充轮询之前的短暂时间是预期的行为。如果这对您的用户造成混淆,您可能希望使用良好的默认值填充它,或者显示“正在加载,请稍候”类型的消息。