Android Sigleton от Firebase Data - PullRequest
       5

Android Sigleton от Firebase Data

0 голосов
/ 25 марта 2020

У меня есть Android дополнение, которое говорит с Firebase. В настоящее время у меня есть такая настройка для получения и сохранения валюты, зарегистрированной в профилях пользователей, для доступа ко всему проекту. Это код, который у меня есть на данный момент:

@Override
public void onSingleUserProfileAcquired(User_Model user_model) {
    this.current_user = user_model;
    if (this.current_user.getuid() != null) {

        if (BuildConfig.ENABLE_CRASHLYTICS) {
            Crashlytics.setUserEmail(this.current_user.getemail());
            Crashlytics.setUserName(String.format("%s %s", this.current_user.getfirst_name(), this.current_user.getlast_name()));
            Crashlytics.setUserIdentifier(this.current_user.getuid());
        }

        //Setup Singleton
        User_Model_Singleton userModelSingleton = User_Model_Singleton.getInstance();
        userModelSingleton.setaccess_level(this.current_user.getaccess_level());
        userModelSingleton.setaccount_created(this.current_user.getaccount_created());
        userModelSingleton.setagreed_to_eula(this.current_user.getagreed_to_eula());
        userModelSingleton.setagreed_to_eula_timestamp(this.current_user.getagreed_to_eula_timestamp());
        userModelSingleton.setcontact_no(this.current_user.getcontact_no());
        userModelSingleton.setemail(this.current_user.getemail());
        userModelSingleton.setdeleted(this.current_user.getdeleted());
        userModelSingleton.setfirst_name(this.current_user.getfirst_name());
        userModelSingleton.setlast_active(this.current_user.getlast_active());
        userModelSingleton.setlast_name(this.current_user.getlast_name());
        userModelSingleton.setprofile_image_url(this.current_user.getprofile_image_url());
        userModelSingleton.setsecurity_level(this.current_user.getsecurity_level());
        userModelSingleton.setuid(this.current_user.getuid());

        userModelSingleton.setareas(this.current_user.getareas());
        userModelSingleton.setdepartments(this.current_user.getdepartments());
    }
}

У меня проблемы с тем, что иногда к нему обращается другое действие, и данные возвращаются как нулевые ... У меня нет другого кода, кроме приведенного выше для настройка синглтона.

Любой совет будет фантастическим c.

Спасибо, Кит

1 Ответ

0 голосов
/ 25 марта 2020

Если вы имеете в виду, что вы используете этот синглтон в другом потоке, вы можете использовать шаблон синглтон-дизайна, оберните поля, которые вы хотите, с помощью фигурных скобок, чтобы сделать их volatl ie, stati c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...