gpt4 book ai didi

java - Spinner 无法与 Firestore 的 document.getId 配合良好

转载 作者:行者123 更新时间:2023-12-02 11:31:55 25 4
gpt4 key购买 nike

知道为什么这不起作用吗?

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

微调器下拉菜单有效(没有默认选择,只是空的),但在选择时,它也不会出现。没有任何错误。我在选择上将 setOnItemSelectedListener 设置为 Toast.maketext,但也没有出现任何内容。

但是一旦我添加:

spinnerArray.add("test"); 

在 Firestore 数据库调用(for 循环)之前,一切正常。 (下拉列表中默认选择“测试”,当我选择另一个条目时,会出现 Toast.maketext,并且选择会出现在微调器上)

再次感谢。

最佳答案

发生这种情况是因为您没有在 onComplete() 方法中定义 spinnerArray,该方法具有异步行为。要解决此问题,请将 spinnerArray 的声明移至 onComplete() 方法内。要显示记录,您还需要在方法内设置适配器。欲了解更多信息,请参阅我的回答 post 。我还建议您观看此视频, Asynchronous Firebase API - Cloud Firestore and Android ,以便更好地理解。

关于java - Spinner 无法与 Firestore 的 document.getId 配合良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49233561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com