Я хочу понять связь Firebase с PreferenceManager.У меня 4 активность.Вход в систему, регистрация, основная активность и вторая активность.
Когда пользователь регистрируется, его электронная почта, телефон сохраняются в Firebase, а также в PreferenceManager или у пользователя с учетной записью при входе в систему. Я извлекаю данные из Firebase и сохраняю в PreferenceManager.
В следующий раз, когда пользователь откроет приложение, если он вошел в систему, ему будет показано Mainacctivity с одной кнопкой, чтобы перейти на SecondActivity, где я отображаю значение PreferenceManager, которое я сохранил ранее.
Когда я нажимаю кнопку иВторое действие Открывается и отображаются значения.Но когда я нажимаю кнопку «Назад» и делаю какие-либо изменения в значении моего firebase ... Теперь, когда я нажимаю кнопку, и второе действие открывается с новым измененным значением.
Я хочу знать, синхронизирует ли firebase значения SharedPreferences или неткак я мог найти любую документацию по relatd.
Вот мой код
Моя учетная запись
private class t2 extends AsyncTask<String,String,Boolean> {
@Override
protected Boolean doInBackground(final String... strings) {
String k = (strings[0]).replace('@','_');
k = k.replace('.','_');
Log.e("string[0] = ",k);
dbreference.child("users").child(k).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String p = dataSnapshot.child("userPhoneno").getValue(String.class);
String n = dataSnapshot.child("userName").getValue(String.class);
String u = dataSnapshot.child("userUniversity").getValue(String.class);
String e = loginid.getText().toString();
PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("phone",p).apply();
PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("email",e).apply();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
publishProgress(strings[0]);
return null;
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
Intent i1 = new Intent(Login.this,MainActivity.class);
i1.putExtra("showmail",fauth.getCurrentUser().getEmail());
startActivity(i1);
finish();
}
}
Моя основная активность
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
Button_One = (Button) findViewById(R.id.button);
Button_One.setOnClickListener(this);
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
switch (arg0.getId()) {
case R.id.button:
startActivity(new Intent(this,SecondActivity.class));
break;
}
}
Во втором действии
etEmail = (EditText) findViewById(R.id.user_email);
etMobile = (EditText) findViewById(R.id.user_mobile);
class t3 extends AsyncTask<String,Integer,Boolean>{
@Override
protected Boolean doInBackground(String... strings) {
publishProgress();
return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
etEmail.setText(PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getString("email","Default email"));
etMobile.setText(String.valueOf(PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getString("phone","Default phone")));
}
}