2 回答

TA貢獻1719條經(jīng)驗 獲得超6個贊
我在 Firebase Firestore 中有一個數(shù)據(jù)庫,其中每個文檔都有一個特定的鍵“上次更新”,其值是一個字符串,表示 YYYY-MM-DD 形式的日期。
將日期存儲為字符串的情況并不常見,您應(yīng)該將其存儲為:
FieldValue.serverTimestamp()
正如我在以下帖子的回答中所解釋的:
Firebase Firestore 上的 ServerTimestamp 始終為 null
所以我決定將其推遲到 AsyncTask。
Cloud Firestore 數(shù)據(jù)庫客戶端已在后臺線程中運行所有網(wǎng)絡(luò)操作。這意味著所有操作的發(fā)生都不會阻塞主線程。將其添加到 an 中AsyncTask
根本不會帶來任何好處。
現(xiàn)在,TextView 顯示值“1970-01-01”,而不是顯示實際值“2019-10-03”,這是 doInBackground 中使用的值
發(fā)生這種情況是因為您嘗試從異步方法同步返回消息。這不是一個好主意。您應(yīng)該按預(yù)期異步處理 API。

TA貢獻1772條經(jīng)驗 獲得超6個贊
哎喲! 這是糟糕的設(shè)計。Firestore 調(diào)用是異步的,因此您不需要將它們放入 asyncTask 后臺方法中。此外,使用同步任務(wù)不會更快地執(zhí)行代碼。您需要的是“正在加載消息”,直到您的 OnSuccessListener 重新觸發(fā)。
添加回答
舉報