我有一个应用程序,用于注册用户的用户名和其他信息,但当我尝试在onCreateView()
的个人资料中加载用户信息时,会有一点延迟3.5秒。从Firebase检索用户数据并将其添加到TextView
或其他任何视图时,是否有任何有效且可靠的方法?
到目前为止,我正在使用片段
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment, container, false);
//Some views initialized here
FirebaseUser user = FirebaseAuth.getInstance()
.getCurrentUser();
DatabaseReference ref= FirebaseDatabase.getInstance()
.getReference();
ref.child(path)
.child(user.getUid())
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
init(dataSnapshot);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e(TAG, "onCancelled " + databaseError.getMessage());
}
});
return view;
}
答案 0 :(得分:1)
您可以为用户数据FirebaseDatabase.getInstance().setPersistenceEnabled(true);
离线激活firebase,但是您必须小心,如果在应用程序脱机时auth令牌过期,客户端会暂停写入操作,直到您的应用重新验证用户为止,否则由于安全规则,写入操作可能会失败。检查documentation