Firebase数据库检索延迟

时间:2017-07-05 09:21:00

标签: android firebase firebase-realtime-database

我有一个应用程序,用于注册用户的用户名和其他信息,但当我尝试在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;
}

1 个答案:

答案 0 :(得分:1)

您可以为用户数据FirebaseDatabase.getInstance().setPersistenceEnabled(true);离线激活firebase,但是您必须小心,如果在应用程序脱机时auth令牌过期,客户端会暂停写入操作,直到您的应用重新验证用户为止,否则由于安全规则,写入操作可能会失败。检查documentation