私は3つのアクティビティ、Register、Login、Mainを持っています。ユーザーが自分の登録内容を入力すると、成功した登録後に電子メールIDをfirebaseデータベースにプッシュしています。ユーザー詳細が正常にプッシュされます。今ではMainActivity Follを開き、今私は私のMainActivitieのArrayListの中に登録されているすべてのユーザーをretieveしたいFirebaseが1つのアクティビティでデータをプッシュし、別のアクティビティでデータを取得する
mFirebaseDatabase = FirebaseDatabase.getInstance();
mMessagesDatabaseReference = mFirebaseDatabase.getReference().child("loginusers");
firebaseAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
Toast.makeText(RegisterActivity.this,"Registration Success",Toast.LENGTH_LONG).show();
saveDisplayName();
User user = new User(email);
mMessagesDatabaseReference.push().setValue(user);
......}
私RegisterActivityにコードされます。だから私は私のMainActivityにfollコードを書いた
mFirebaseDatabase = FirebaseDatabase.getInstance();
mMessagesDatabaseReference = mFirebaseDatabase.getReference().child("loginusers");
mMessagesDatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
contactList.clear();
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
User user = postSnapshot.getValue(User.class);
if(!contactList.contains(user)){
contactList.add(user);
}
}
for(int i=0;i<contactList.size();i++){
Toast.makeText(getApplicationContext(),"Hi"+contactList.get(i),Toast.LENGTH_SHORT).show();
Log.i("Pritish", "onDataChange: "+contactList.get(i));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
しかし、このメソッドは決して呼び出されません。今、私はRegisterActivityでMainActivityで書かれたコードを書いて、Intentを使ってuserlistを渡すことができますが、ユーザーがLoginActivityを使用している場合に問題を引き起こす可能性があります。 この問題を解決するには
アプリでログアウトオプションを作成しましたか? logoutオプションを指定すると、sharedprefrenceにユーザ登録済みのフラグを設定し、共有フラグでloginフラグを設定します。 – Vij
あなたを取得できませんでした。私はログアウト機能を実装していません – hagrya