База данных Firebase для Unity3d Android ValueChanged Отказ от проблем с подпиской - PullRequest
0 голосов
/ 02 ноября 2018

У меня проблема с Unity3d SDK. Я подписываюсь на событие ValueChanged, и при первом его запуске я отписываюсь от обработчика. В Unity все отлично работает. Но когда я создаю проект для Android, отписаться не удастся: после отписки я все еще обрабатываю события в обработчике. Вот код:

public void CheckUserExists()
{
    FirebaseDatabase.DefaultInstance
        .GetReference("users").Child(primary_key)
        .ValueChanged += CheckUserExistsHadler;
}

void CheckUserExistsHadler(object sender, ValueChangedEventArgs e)
{
    FirebaseDatabase.DefaultInstance
        .GetReference("users").Child(primary_key)
        .ValueChanged -= CheckUserExistsHadler;

    if (e.Snapshot == null || e.Snapshot.Value == null)
    {
        print("user_exists");
    }
    else
    {
        print("user_not_exists");
    }
}

1 Ответ

0 голосов
/ 02 ноября 2018

Спасибо за совет. Я изменил на

user_reference = FirebaseDatabase.DefaultInstance.GetReference("users").Child(primary_key); 
...
user_reference.ValueChanged += CheckUserExistsHadler; 
...
user_reference.ValueChanged -= CheckUserExistsHadler; 

и работает нормально

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