作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在这里,我试图从内部类 [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/
我是一名优秀的程序员,十分优秀!