我的android应用程序中有多个按钮,单击时必须从Firebase数据库获取数据,并将获取的数据添加到列表中,该列表必须作为参数传递给另一个类构造函数。但是由于Firebase查询是异步的,因此默认情况下,数据的获取是在另一个线程中进行的。在将列表传递给构造函数之前,如何确保已将列表与其他线程的数据一起添加?
答案 0 :(得分:0)
oncompletelistener很简单,您可以参考以下示例:
db=FirebaseFirestore.getInstance();
db.collection("Order").document(TableListFragment.tableno)
.update(
"Items", FieldValue.arrayUnion("ABCD"),
"Quantity", FieldValue.arrayUnion("34")
).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Toast.makeText(getContext(),"Item Added",Toast.LENGTH_LONG).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.i("onFailure:",e.toString());
}
});