【发布时间】:2018-11-27 12:22:00
【问题描述】:
我正在为一个需要从 Firebase 数据库中获取一些数据然后显示到用户配置文件中的应用编写配置文件。
到目前为止,一切顺利,此要求已完成,所有数据均已正确提取到用户配置文件。
但现在我有另一个要求,将我的一些功能放在一个地方,我试图找出如何以更好的方式做到这一点。
我用这个方法加载配置文件的所有数据(因为它是一个很大的方法我要缩小它,但问题不是关于代码而是关于逻辑)。
private void loadProfileData() {
if (mActivity == null) {
return;
}
mProgressBar.setVisibility(View.VISIBLE);
mDatabase.child("users").child(mAuth.getCurrentUser().getUid()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
UserModel model = dataSnapshot.getValue(UserModel.class);
String username = model.getUsername();
.
.
.
//All data loaded
mProgressBar.setVisibility(View.GONE);
...
因此,在获取此数据时,我有一个溢出菜单,可以选择编辑用户配置文件。
现在,在获取我的数据时启用了该编辑配置文件选项,我需要将附加信息与从 Firebase 获取的所有用户信息一起传递给该 Activity,以便将其加载到那里并进行编辑。
现在,我从两个方面考虑了这一点
- 等到所有异步过程完成后再启用编辑 导航菜单中的个人资料选项
- 在获取数据时让菜单按钮保持启用状态,然后 当我在该活动中时再次获取它(那将是 重新加载所有数据,而不是将其作为额外数据传递,这将是 更高效)但同时我正在做两个请求 相同的数据
有没有更好的方法来实现这个功能?
【问题讨论】:
标签: java android firebase firebase-realtime-database