4 回答

TA貢獻1862條經(jīng)驗 獲得超7個贊
您正在對 Firestore 進行異步調(diào)用。檢索數(shù)據(jù)時調(diào)用的方法,在您顯示 Toast 之后 whileOnSuccessListener
仍然為 null。您可以將 toast 移入內(nèi)部或僅用于打印到控制臺。onSuccess()
checkCode
onSuccess()
Log

TA貢獻1865條經(jīng)驗 獲得超7個贊
要將 QuerySnapshot 轉(zhuǎn)換為您的對象列表,請使用:
querySnapshot.toObjects(YourObject.class)
在為 checkCode 賦值之前觸發(fā)帶有 Tost FromOutside 的行,因為對 firebase 的查詢是異步的。這就是 FromOutside 為空的原因。

TA貢獻1803條經(jīng)驗 獲得超3個贊
答案很簡單,您checkCode
全局聲明了變量,但它沒有任何值。所以它將是null
有價值的,并且這個價值在那里被烘烤。但是在OnSuccessListener
執(zhí)行時它的值將由代碼分配checkCode = (String) d.get("kode");
,所以你得到 1111 作為它的值。

TA貢獻1812條經(jīng)驗 獲得超5個贊
里面的代碼onSuccess(QuerySnapshot queryDocumentSnapshots){}
是一個異步回調(diào)看到這個答案的解釋,因為對 Firebase 的調(diào)用可能需要一些時間才能完成。因此,該行將Toast.makeText(MainActivity.this, "From outside : "+checkCode, Toast.LENGTH_LONG).show();
始終在回調(diào)執(zhí)行之前執(zhí)行。
添加回答
舉報