Сброс аварийных сигналов при перезагрузке с использованием базы данных Firebase Realtime - PullRequest
0 голосов
/ 07 мая 2018

Мое приложение имеет несколько функций, одна из которых - аварийные сигналы, при перезагрузке все аварийные сигналы отменяются. Я пытаюсь сбросить их при перезагрузке, но у меня проблема с получением данных из класса IntentService следующим образом.

Моя справка и структура базы данных

rootRef = FirebaseDatabase.getInstance().getReference();
userRef = rootRef.child(getString(R.string.db_user));
userDataRef = userRef.child(firebaseUser.getUid());
alarmRef = userDataRef.child(getString(R.string.db_alarm));
// ...
reminderRef = userDataRef.child(getString(R.string.db_reminder));

Мой IntentService класс :

class BootService extends IntentService {

    public BootService() {
        super("BootService");
    }

    @Override
    protected void onHandleIntent(@Nullable Intent intent) {
        FirebaseApp.initializeApp(this);

        DatabaseReference alarmsRef = FirebaseDatabase.getInstance().getReference()
            .child(getString(R.string.db_user))
            .child()
            // How can I retrieve userId here if user is not logged-in yet?
            // Application may have many accounts in one phone
            // I need to retrieve them all not only one
            .child(getString(R.string.db_alarm));
    }
}

Первая проблема - это userId, упомянутая в комментариях, вторая - будет ли создание ссылок фактически вызывать событие onChildAdded?

Любые лучшие подходы для реализации этого более чем приветствуются, заранее спасибо

1 Ответ

0 голосов
/ 07 мая 2018

Как я могу получить userId здесь, если пользователь еще не вошел в систему?

Вы не можете. Если пользователь еще не вошел в систему, это означает, что вы не знаете, какой пользователь войдет в ваше приложение, чтобы использовать этот конкретный идентификатор.

Будет ли создание ссылок фактически вызывать событие onChildAdded?

Нет, только создание ссылки, не означает, что метод onChildAdded() будет запущен. Этот метод будет запущен только тогда, когда вы подключите слушателя к этой ссылке.

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