Android Sequence(跳过方法)

威廉·艾

我在理解关于调用函数的 android 代码有什么问题时有一些问题

如下图所示,我有 2 个私人空隙

cekSaved(place.getName());
addUserInfo(place.getName(),"");

我希望android首先运行ceksaved方法然后addUserInfo但是android首先运行adduser然后运行ceksaved函数

我需要帮助理解这一点

代码是:

private void cekSaved(String param1){
        FirebaseFirestore db = FirebaseFirestore.getInstance();

        DocumentReference newUserInfo = db.collection("trip").document();
        String userID = FirebaseAuth.getInstance().getCurrentUser().getUid();

        db.collection("trip")
                .whereEqualTo("user_id", userID )
                .whereEqualTo("city", param1)
                .get()
                .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<QuerySnapshot> task) {
                        if (task.isSuccessful())
                        {
                            for (QueryDocumentSnapshot document : task.getResult()) {
                                status = "ada";
                                Log.i(TAG, "onComplete: "+status);
                            }
                        }
                        else {
                            Log.d(TAG, "Error getting documents: ", task.getException());
                        }
                    }
                });
    }

    private void addUserInfo(String city, String tittle){



        FirebaseFirestore db = FirebaseFirestore.getInstance();
        DocumentReference newUserInfo = db.collection("trip").document();
        place_id = newUserInfo.getId();
        Log.i(TAG, "addUserInfo: "+status);
        if(!status.equals("ada")) {
            String userID = FirebaseAuth.getInstance().getCurrentUser().getUid();
            userTrip usertrip = new userTrip();
            usertrip.setCity(city);
            usertrip.setTittle("My Trip To " + city);
            usertrip.setTrip_id(newUserInfo.getId());
            usertrip.setUser_id(userID);
            Log.i(TAG, "addUserInfo: trip baru telah di buat");


            newUserInfo.set(usertrip).addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {
                        ToastMessage("OK");
                    } else {
                        ToastMessage("fail to register");
                    }
                }
            });
        }else{ToastMessage("sudah ada");}

    }
谢尔马诺

您正在从 Firebase 获取值,这是一个异步调用,因此您真的不知道哪个将首先完成。你可以看到,无论是电话有onCompleteListener,如果你想运行addUserInfocekSaved你必须调用addUserInfo内cekSaved方法onCompleteListener。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android“跳过XX帧!”

来自分类Dev

Android MPAndroidCharts LineChart跳过值

来自分类Dev

在 Android 中跳过活动

来自分类Dev

Travis CI跳过测试(Gradle Android项目)

来自分类Dev

Android两个MediaPlayers同时跳过

来自分类Dev

我的android项目的活动正在跳过

来自分类Dev

如何防止android studio跳过活动?

来自分类Dev

是跳过()方法的短路操作?

来自分类Dev

Laravel雄辩的跳过方法

来自分类Dev

如何防止android form跳过表单中的部分?

来自分类Dev

Android:RecyclerView:未连接适配器;跳过布局

来自分类Dev

Android-如何跳过第一次活动

来自分类Dev

Android setText跳过一行<br> / n \ n

来自分类Dev

我的Android应用程序跳过了部分代码

来自分类Dev

Android单元测试跳过测试类中的行

来自分类Dev

如何防止android form跳过表单中的部分?

来自分类Dev

componentWillMount方法跳过函数调用

来自分类Dev

iOS中的跳过/忽略方法

来自分类Dev

Android视图的发布方法

来自分类Dev

Android BluetoothGatt超级方法?

来自分类Dev

Android的HTTP CONNECT方法

来自分类Dev

Android反射方法错误

来自分类Dev

Android上的DRY方法

来自分类Dev

Android TvView的实现方法

来自分类Dev

android namevaluepair替代方法

来自分类Dev

Android的getBSSID()方法错误?

来自分类Dev

Android的getBSSID()方法错误?

来自分类Dev

Android:方法传递错误

来自分类Dev

Android Retropost方法