У меня есть отдельный класс "FirebaseUserProfile", который добавляет и обновляет информацию о пользователе как в приложении, так и в базе данных Firebase. До сих пор я использовал sharedpreferences в MainActivity. java, но теперь я хочу переместить это в FirebaseUserProfileClass, чтобы я мог легко обновлять информацию о пользователях в приложении.
Ниже вы видите мой код в классе как я хочу это сделать Сначала метод сохранения общих настроек:
public void saveDataForPreferences(Context context, String hasUserAlreadySeenTheIntroMessage, String key){
SharedPreferences sharedPreferences = context.getSharedPreferences(hasUserAlreadySeenTheIntroMessage, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, hasUserAlreadySeenTheIntroMessage);
editor.apply();
}
А затем мой метод, который добавляет «желаемую» информацию в этот метод выше:
public void addPersonalInfoToDB(final Context howToDoThis){ // is this correct?
Query secretNotesQuery = FirebaseDatabase.getInstance().getReference().child("AdditionalUserInfo");
secretNotesQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
//final DatabaseReference current_notes_db = FirebaseDatabase.getInstance().getReference().child("AdditionalUserInfo").push();
final DatabaseReference current_notes_db = FirebaseDatabase.getInstance().getReference().child("yo").push();
Map extraUserInfo = new HashMap();
extraUserInfo.put("sex", sex);
extraUserInfo.put("user-age", age);
extraUserInfo.put("user-weight", weight);
extraUserInfo.put("intro-message-seen", introMessageSeen);
extraUserInfo.put("user_id", getUid());
saveDataForPreferences(howToDoThis, introMessageSeen,"2");
current_notes_db.setValue(extraUserInfo);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
и внутри моей «ProfileCompletionActivity»:
the_firebase_profile_class.addPersonalInfoToDB(); // What i can i put inside this parameter?
Я получаю сообщение об ошибке:
method addPersonalInfoToDB in class FirebaseUserProfile cannot be applied to given types;
required: Context
found: no arguments
Может ли кто-нибудь помочь мне с этим? спасибо.
РЕДАКТИРОВАТЬ: Также метод, где я могу прочитать общие настройки:
public int readSharedPreference(Context context,String lol ,String key){
SharedPreferences sharedPreferences = context.getSharedPreferences(lol, Context.MODE_PRIVATE);
return temp = sharedPreferences.getInt(key,DEFAULT);
}