4 回答
TA贡献1862条经验 获得超7个赞
您正在对 Firestore 进行异步调用。检索数据时调用的方法,在您显示 Toast 之后 whileOnSuccessListener
仍然为 null。您可以将 toast 移入内部或仅用于打印到控制台。onSuccess()
checkCode
onSuccess()
Log
TA贡献1865条经验 获得超7个赞
要将 QuerySnapshot 转换为您的对象列表,请使用:
querySnapshot.toObjects(YourObject.class)
在为 checkCode 赋值之前触发带有 Tost FromOutside 的行,因为对 firebase 的查询是异步的。这就是 FromOutside 为空的原因。
TA贡献1803条经验 获得超3个赞
答案很简单,您checkCode
全局声明了变量,但它没有任何值。所以它将是null
有价值的,并且这个价值在那里被烘烤。但是在OnSuccessListener
执行时它的值将由代码分配checkCode = (String) d.get("kode");
,所以你得到 1111 作为它的值。
TA贡献1812条经验 获得超5个赞
里面的代码onSuccess(QuerySnapshot queryDocumentSnapshots){}
是一个异步回调看到这个答案的解释,因为对 Firebase 的调用可能需要一些时间才能完成。因此,该行将Toast.makeText(MainActivity.this, "From outside : "+checkCode, Toast.LENGTH_LONG).show();
始终在回调执行之前执行。
添加回答
举报