gpt4 book ai didi

android - ArrayList 方法返回一个从 firebase 获取数据的空数组

转载 作者:行者123 更新时间:2023-11-29 23:25:38 28 4
gpt4 key购买 nike

我的返回有问题..因为下载数据需要几秒钟,当方法返回 ArrayList 时,它仍然是空的。事实上,如果我把那行代码放在 Log.v("array", String.valueOf(partecipantsArrayList));首先打印 0 然后打印填充的数组。所以我必须在返回语句之前等待..有什么办法可以实现吗?

public ArrayList<String> getPartecipantsList(){
String email = getEmail();
String groupTitle = getTitleBar();
DocumentReference docRef = db.collection("users").document(email).collection("Group").document(groupTitle);

docRef.get()
.addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {


DocumentSnapshot document = task.getResult();


//Extracting participants ArrayList from the document
for(Object item : task.getResult().getData().values()) {

String[] values = String.valueOf(item).replace("[", "").replace("]", "").split(",");

for (String value : values){

partecipantsArrayList.add(value);

}

}
partecipantsArrayList.remove(String.valueOf("["));
partecipantsArrayList.remove(partecipantsArrayList.size() - 1);
Log.v("array", String.valueOf(partecipantsArrayList));

}

})

.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {

}
});


return partecipantsArrayList;
}

最佳答案

这是异步任务,您可以像下面这样调整此代码。

将该方法的签名更改为return void

public void getPartecipantsList();

完成后做下一步

                @Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {

...............
partecipantsArrayList.remove(String.valueOf("["));
partecipantsArrayList.remove(partecipantsArrayList.size() - 1);

Log.v("array", String.valueOf(partecipantsArrayList));
// do your action by calling next method from here
//eg: setResultFromArray(partecipantsArrayList);
}

onFailure 发生故障时执行失败操作或调用方法。

                @Override
public void onFailure(@NonNull Exception e) {
//......
}

关于android - ArrayList<String> 方法返回一个从 firebase 获取数据的空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53617618/

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