Java 微调器与Firestore的document.getId不兼容

Java 微调器与Firestore的document.getId不兼容,java,android,firebase,spinner,google-cloud-firestore,Java,Android,Firebase,Spinner,Google Cloud Firestore,你知道为什么这样不行吗 mFirestore.collection("DR1") .document(UserID) .collection("Story") .get() .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() { @Override pu

你知道为什么这样不行吗

mFirestore.collection("DR1")
            .document(UserID)
            .collection("Story")
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        for (DocumentSnapshot document : task.getResult()) {
                          spinnerArray.add(String.valueOf(document.getId()));  
                        }
                    } else {
                        Log.d(TAG, "Error getting documents: ", task.getException());
                    }
                }
            });
在Firestore数据库调用for循环之前,一切正常。下拉列表上的默认测试选择,当我选择另一个条目时,Toast.maketext出现,选择显示在微调器上


再次感谢。

之所以发生这种情况,是因为您没有在onComplete方法中定义SpinneArray,该方法具有异步行为。要解决此问题,请将spinnerray的声明移动到onComplete方法中。要显示记录,还需要在方法内部设置适配器。有关更多信息,请参阅我的答案。我还建议您观看此视频,以便更好地理解。

谢谢,我刚刚通过您的视频观看了此视频。谢谢你这么做。明天晚些时候我会再做的。嘿,亚历克斯,我只是想告诉你,我已经按照你的建议做了。多谢!很高兴听到这个消息。干杯
spinnerArray.add("test");