gpt4 book ai didi

java - 如何在 Query OnCompleteListener 之外使用此变量(变量在 OnCreate 之外定义)?

转载 作者:行者123 更新时间:2023-11-30 04:58:54 35 4
gpt4 key购买 nike

<分区>

我正在使用 firebase firestore 来保存数据。 我想检索用户的城市并根据它从 firestore 检索特定数据并设置 RecyclerView。问题是:当我进行查询时,我无法在 OnCompleteListener 之外获取变量(城市)。在下面的代码中,(setUpRecyclerView()) 中的 (userCity) 是 ""以及 OnCompleteListener 之外的任何地方。我能做些什么??这是我的代码:

   public class chosenSubject extends AppCompatActivity {
private FirebaseAuth mAuth=FirebaseAuth.getInstance();
private FirebaseUser currentUser= mAuth.getCurrentUser();
private FirebaseFirestore db = FirebaseFirestore.getInstance();
private TextView tv;
private String UserId =currentUser.getUid();

private TeacherAdapter teacherAdapter;

private static String userCity="";
private static String city;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chosen_subject);
tv=findViewById(R.id.tv);

db.collectionGroup("Id").whereEqualTo("id" , UserId).get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()){
for (QueryDocumentSnapshot document : task.getResult()){
city = document.getString("city");
}
}
userCity = city;
}

});
setUpRecyclerView();

}// end of onCreate


private void setUpRecyclerView(){

Query query = db.collection("Users").document("Teachers").collection("Id")
.whereEqualTo("city" , userCity);

FirestoreRecyclerOptions < TeacherOfSubject > options = new FirestoreRecyclerOptions.Builder<TeacherOfSubject>()
.setQuery(query, TeacherOfSubject.class)
.build();

teacherAdapter = new TeacherAdapter(options);

RecyclerView recyclerView = findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true); //for performane reasons
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(teacherAdapter);
}

@Override
protected void onStart() {
super.onStart();
teacherAdapter.startListening();
}

@Override
protected void onStop() {
super.onStop();
teacherAdapter.stopListening();
}
}// end of class

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