Почему у моего firebase-соединения время ожидания истекло?

Я пытаюсь подключиться к firebase с помощью моего веб-приложения Node.js, но с прошлой пятницы у меня начались проблемы, которые периодически приводили к тому, что мое приложение не получало никаких данных от firebase и по причине истечения времени ожидания. Я думаю, что это проблема с Firebase, но для безопасности я вернулся к более старой / более простой версии, которая работала нормально. Однако моя старая версия также не работала.

Для отладки я сосредоточился на "тестовом" сценарии. В моем файле app.js у меня есть маршрут app.get('/listener/test', listener.test); и в моем маршруте слушателя у меня есть:

DeviceListener.prototype.test = function() {
    var url = 'wss://developer-api.nest.com/';
    var dataRef =new Firebase(url);
    console.log("Testing. Attempting to authenticate firebase.");
    dataRef.auth(this.token, function (error, result) {
        if (error) console.log("Firebase Authentication Error: " + error);
        else {
            console.log("Firebase authentication success");
            dataRef.on("child_changed", function(snapshot){
                var device_data = snapshot.val();
                console.log(JSON.stringify(device_data));
                console.log("Device Changed");
            });
        }
    });
}

Тем не менее, когда я иду в /listener/test У меня есть только консольный вывод:

at=info method=GET path="/listener/test" host=ooma2.herokuapp.com request_id=f1de66a2-2086-4aa1-b4a9-5a399110850a fwd="38.112.2.94" dyno=web.1 connect=3ms service=30ms status=302 bytes=707 
heroku/router:  at=info method=GET path="/" host=ooma2.herokuapp.com request_id=f8c42a92-8e0d-489c-ba37-fc10a7286d4d fwd="38.112.2.94" dyno=web.1 connect=2ms service=13ms status=302 bytes=698 
heroku/router:  at=info method=GET path="/login" host=ooma2.herokuapp.com request_id=3826633b-3159-4495-82a4-966739066b8a fwd="38.112.2.94" dyno=web.1 connect=2ms service=26ms status=304 bytes=738 
app/web.1:  Testing. Attempting to authenticate firebase. 
heroku/router:  at=info method=GET path="/stylesheet/login.css" host=ooma2.herokuapp.com request_id=057aa990-57ee-4aac-91f2-e1543d2a9c02 fwd="38.112.2.94" dyno=web.1 connect=2ms service=7ms status=404 bytes=679 
heroku/router:  at=info method=GET path="/stylesheet/ooma.css" host=ooma2.herokuapp.com request_id=2f483b7b-a8f5-467a-bdf4-4c594ca0c2e0 fwd="38.112.2.94" dyno=web.1 connect=2ms service=5ms status=404 bytes=678 
heroku/router:  at=error code=H12 desc="Request timeout" method=GET path="/bower_components/firebase/firebase.js" host=ooma2.herokuapp.com request_id=533d2333-bb0e-4fcf-b81f-fc0dd5bd1808 fwd="38.112.2.94" dyno=web.1 connect=3ms service=30001ms status=503 bytes=681 
heroku/router:  at=error code=H12 desc="Request timeout" method=GET path="/js/login.js" host=ooma2.herokuapp.com request_id=971d1823-a9fd-4f85-b488-2d77f209acec fwd="38.112.2.94" dyno=web.1 connect=1ms service=30001ms status=503 bytes=655 
heroku/router:  at=error code=H12 desc="Request timeout" method=GET path="/bower_components/jquery-cookie/jquery.cookie.js" host=ooma2.herokuapp.com request_id=bcde664a-e580-4854-bd12-47df563464f0 fwd="38.112.2.94" dyno=web.1 connect=1ms service=30001ms status=503 bytes=691 
heroku/router:  at=error code=H12 desc="Request timeout" method=GET path="/bower_components/jquery/dist/jquery.js" host=ooma2.herokuapp.com request_id=969c6fd0-9801-4f78-af59-10e63ad52fa9 fwd="38.112.2.94" dyno=web.1 connect=33ms service=30033ms status=503 bytes=684 

Так как ни сообщение Firebase Authentication Error: ... ни Firebase Authentication Success вошли, я думаю, это означает, что аутентификация никогда не завершена.

Это логика звука? Потому что, если это так, я не уверен, как поступить в исправлении / справиться с этим. Я был бы очень признателен за любые мысли и идеи по этому поводу, или любые альтернативные объяснения. Кроме того, кто-нибудь еще испытывал что-либо подобное? Особенно начиная с 01.08.14?

1 ответ

У меня была та же самая проблема в течение прошлых нескольких дней. Этим вечером я понизил мою версию узла до v0.10.20, и проблема, кажется, была решена, но я буду знать только с большим количеством времени. Вы можете попробовать поместить это в package.json:

  "engines": {
         "node": "0.10.20",
         "npm": ">=1.3"
     }

(Ранее я опубликовал ответ о написании функции "heartbeat", которая будет пинговать Firebase каждые 30 секунд, чтобы предотвратить тайм-аут. Это, казалось, работало некоторое время, но проблема вернулась позже.)

Другие вопросы по тегам