2017-07-05 12 views
0

私はユーザ名と他の情報をユーザから登録するアプリを持っていますが、onCreateView()のユーザプロファイルにユーザ情報をロードしようとすると、わずか3.5秒間の遅延があります。 Firebaseからユーザデータを取得し、それをTextViewまたは他のビューに追加する場合、効率的で信頼性の高い方法はありますか?ここでFirebaseデータベースの検索遅延

私がこれまでにやっていることですが、私はあなたがユーザデータ用firebaseオフラインを有効にすることができFirebaseDatabase.getInstance().setPersistenceEnabled(true);が、認証トークン場合は、原因と注意する必要がありフラグメント

@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

を使用していますアプリがオフラインの間に期限切れになると、クライアントはアプリがユーザーを再認証するまで書き込み操作を一時停止します。そうしないと、セキュリティルールのため書き込み操作が失敗する可能性があります。確認するにはdocumentation

関連する問題