Я использую Firebase C ++ SDK 6.15.1 на Windows 10. Я пытаюсь записать некоторые данные в свою базу данных реального времени с помощью SetValue. Однако будущее, возвращаемое SetValue, никогда не завершается, и данные не записываются. Странно то, что это происходит периодически - раньше он работал надежно, но после переключения моего рабочего места и обновления с 6.15.0 на 6.15.1 он работает только иногда. Посмотрев на консоль firebase, я вижу, что это не имеет ничего общего с разрешениями, потому что запросы не принимаются. Вот мой код
database->set_log_level(firebase::kLogLevelDebug);
firebase::database::DatabaseReference myRef =
database->GetReference().Child("uids");
std::string key = myRef.PushChild().key();
auto future = myRef.Child(key).Child("uid").SetValue("waiting");
future.OnCompletion([](const firebase::Future< void >& completed_future,
void* user_data) {
if (completed_future.error() == 0) {
LogMessage("FUTURE COMPLETED");
}
else {
LogMessage("Error %d: %s",
completed_future.error(),
completed_future.error_message());
}
}, nullptr);
ProcessEvents(5000);
Этот код ничего не печатает и не записывает никаких значений, что затрудняет отладку. Сначала я подумал, что это может быть мое соединение rnet, но похоже, что будущее вообще никогда не завершится.