【发布时间】:2021-11-12 21:58:14
【问题描述】:
数据已保存在 Firestore 中,但我无法获取。此外,创建的列表大小仍然等于 null。
我知道我想从existUserProfileModelList 而不是从existUserProfileModel 获取数据,但我不知道该怎么做。这是我的代码:
public class UserProfileActivity extends AppCompatActivity {
// created List from User Profile Model
private List<ExistUserProfileModel> existUserProfileModelList;
// define some Edit texts
private EditText profile_phone_ET, profile_FullName_ET, profile_Address_ET;
// define FireStore
private FirebaseFirestore firestore;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_profile);
profile_phone_ET = findViewById(R.id.profile_Phone);
profile_FullName_ET = findViewById(R.id.profile_FullName);
profile_Address_ET = findViewById(R.id.profile_Address);
firestore = FirebaseFirestore.getInstance();
existUserProfileModelList = new ArrayList<>();
firestore.collection("UserData").document().collection(profilePhone)
.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (DocumentSnapshot document : task.getResult()) {
ExistUserProfileModel existUserProfileModel = document.toObject(ExistUserProfileModel.class);
existUserProfileModelList.add(existUserProfileModel);
profile_FullName_ET.setText(existUserProfileModel.getUserName());
profile_Address_ET.setText(existUserProfileModel.getUserAddress());
}
Log.i("Size ", String.valueOf(existUserProfileModelList.size()));
}
else{
Toast.makeText(UserProfileActivity.this, "Error" + task.getException(), Toast.LENGTH_SHORT).show();
}
}
});
【问题讨论】:
-
什么是null?
-
我创建了一个名为 ExistUserProfileModel 的模型,然后从中定义了一个数组列表,当我从 firestore 检索数据并通过此数据更新列表时,我得到数组大小仍然为零
-
您在代码中的哪个位置进行检查?
-
在 if 条件下的 for 语句之后,但我删除了它。
-
将其添加到您的问题中以清楚地看到它,还请编辑您的问题并将您的数据库结构添加为屏幕截图。
标签: java android google-cloud-firestore