如何等待Firebase查询完成?

时间:2019-02-25 10:14:27

标签: android multithreading firebase-realtime-database

我的android应用程序中有多个按钮,单击时必须从Firebase数据库获取数据,并将获取的数据添加到列表中,该列表必须作为参数传递给另一个类构造函数。但是由于Firebase查询是异步的,因此默认情况下,数据的获取是在另一个线程中进行的。在将列表传递给构造函数之前,如何确保已将列表与其他线程的数据一起添加?

1 个答案:

答案 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());
                    }
                });