【发布时间】:2018-01-01 21:43:11
【问题描述】:
Fragment 的 Oncreate
public class HomeScreen_Profile extends Fragment {
EditText Name, Email, Status, Quote;
private FirebaseAuth mAuth;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_profile, container, false);
Name = (EditText) rootView.findViewById(R.id.Name);
Email = (EditText) rootView.findViewById(R.id.Email);
Status = (EditText) rootView.findViewById(R.id.Status);
Quote = (EditText) rootView.findViewById(R.id.Quote);
mAuth = FirebaseAuth.getInstance();
loadUserInformation();
return rootView;
}
}
加载用户信息方法
public void loadUserInformation() {
final String uid = mAuth.getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference().child(uid);
DatabaseReference uidRef = rootRef.child("ref").child(uid);
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
SetUpProfileHelper obj = postSnapshot.getValue(SetUpProfileHelper.class);
String UserName = obj.getName();
String UserEmail = obj.getEmail();
Name.setText(UserName);
Email.setText(UserEmail);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(getActivity(), "Error Loading UserDetails", Toast.LENGTH_LONG).show();
}
};
uidRef.addListenerForSingleValueEvent(eventListener);
}
为了检查工作,我在方法中只使用了 getName 和 getEmail。我保存用户信息没有问题,但是获取它让我很难,因为互联网上的所有教程都在获取它并在我不想要的 ListView 中显示它。有人能指出这段代码中的错误吗?
【问题讨论】:
-
到底出了什么问题?
-
数据未显示在 Edittexts 中
-
添加日志并查看您是否正在获取任何内容或/并显示您的数据库
-
Log.d("TAG", obj.getName());添加了这行代码......我如何检查我是否正在获取数据。对不起,我还是个初学者
-
在 android studio 的 logcat 中(屏幕底部)调试应用程序,当您到达此活动时,检查 logcat 中的
TAG等于什么
标签: android database firebase firebase-realtime-database fetch