gpt4 book ai didi

java - 为来自内部类 AsyncTask Firebase 的最后一个元素数组变量赋值

转载 作者:行者123 更新时间:2023-11-30 00:02:36 26 4
gpt4 key购买 nike

在这里,我试图从内部类 [FirebaseFireStore 类] 中为最后一个元素数组赋值,但该值永远不会改变。

final boolean[] canPost = {false};
mFirestore.collection("Users").document(current_user_id).get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
if (task.getResult().exists()) {

try {
String lastPost = task.getResult().get("last_posted").toString();
boolean isAbleToPost = canHePost(lastPost);
if (!isAbleToPost){
Log.d(TAG, "Can't post");
canPost[0] = false;
}else{
Log.d(TAG, "CAN POST!!");
canPost[0] = true;
}
} catch (NullPointerException e) {
Log.d(TAG, "User never posted before");
}
}
}
}
});

Log.d("isAllowed to post?", ""+ canPost[0]);

请注意,boolean isAbleToPost = canHePost(lastPost); 返回 ture和 Log.d(TAG, "CAN POST!!"); 显示在日志中,但真正让我困惑的是最后的 Log.d("isAllowed to post? ", ""+ canPost[0]); 首先显示 - 在第一个 Log 之前!日志顺序:

D/isAllowed to post?: false
D/CAN: CAN POST!!

最佳答案

你获取异步数据,所以当然如果你阅读你的代码内联你创建一个 boolean 数组然后你获取数据并添加一个将触发稍后的监听器最后你正在记录Log.d("是否允许发帖?", ""+ canPost[0]);

如果你想让你的日志在你的回调中,那么将它向上移动

final boolean[] canPost = {false};
mFirestore.collection("Users").document(current_user_id).get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
if (task.getResult().exists()) {

try {
String lastPost = task.getResult().get("last_posted").toString();
boolean isAbleToPost = canHePost(lastPost);
if (!isAbleToPost){
Log.d(TAG, "Can't post");
canPost[0] = false;
}else{
Log.d(TAG, "CAN POST!!");
canPost[0] = true;
}
} catch (NullPointerException e) {
Log.d(TAG, "User never posted before");
}
}
}
Log.d("isAllowed to post?", ""+ canPost[0]);
}
});

关于java - 为来自内部类 AsyncTask Firebase 的最后一个元素数组变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49638548/

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