java - 在 Firestore 中找不到文档数据,返回 null
问题描述
我似乎无法将文本放入 TextView。数据来自 Firestore 数据库。当我运行它时,TextView 是空白的并返回一个空值。以下是我到目前为止所做的。有人可以看看吗?你可以在这里看到我的数据库结构:[数据库结构图][1]
public class ProfileFragment extends Fragment {
TextView firstNameText, age;
private FirebaseAuth mAuth = FirebaseAuth.getInstance();
private FirebaseFirestore db = FirebaseFirestore.getInstance();
private FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_profile, container, false);
firstNameText = rootView.findViewById(R.id.profile_firstName);
age = rootView.findViewById(R.id.profile_age);
getUserInfo();
return rootView;
}
public void getUserInfo() {
db.collection("Users").document(mAuth.getCurrentUser().getEmail()).get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot documentSnapshot = task.getResult();
String firstName = documentSnapshot.getString("Firstname");
Log.d(TAG, "Printing docData: " + documentSnapshot.getData());
firstNameText.setText(firstName);
}
}
});
}
}
解决方案
我猜想
mAuth.getCurrentUser().getEmail()
是这里的问题。尝试将用户的电子邮件放在字符串中
mAuth = FirebaseAuth.getInstance();
final FirebaseUser theUser = mAuth.getCurrentUser();
if (theUser !=null)
String UID = theUser.getEmail().toString();
并更换
mAuth.getCurrentUser().getEmail()
与 UID 。
推荐阅读
- android - 导航抽屉图标丢失
- c# - @Html.DropdownList - 不清楚如何添加类
- python - 需要在用户输入列表中查找最小值、最大值、范围和平均值,但我无法使用内置函数来查找它们
- database - 可以构建直接连接到数据库的前端吗?
- python - python: 3.9.0版本中的.py文件图标问题
- java - Spring Batch with Hiberbate,刷新后实体不持久
- gnuplot - gnuplot how to print out derivative value to txt file?
- c++ - 如何根据排名实现 BST 函数 insert() 和 split()?
- android - 如何限制搜索建议的数量kotlin
- c - 如何从标准输入中指定文件名然后读取同一个文件?