2016-11-11 2 views
2

В последние дни я столкнулся с несколькими проблемами с моим старым sdk firebase как в android, так и на сервере js 'firebase' sdk. Отправка уведомлений и извлечение данных. После того, как я обновил зависимости от android с новейшей версией, проблема с уведомлением была решена. Но на стороне сервера:Firebase admin sdk (node.js) запрос базы данных замораживание

  • Установленный firebase admin sdk.
  • Последующие инструкции: https://firebase.google.com/docs/admin/setup , а также проверенная роль учетной записи службы firebase-adminsdk.

Проблема в следующем примере:

var admin = require("firebase-admin"); 
var serviceAccount = require("filepath.json"); 

admin.initializeApp({ 
    credential: admin.credential.cert(serviceAccount), 
    databaseURL: "https://dbname.firebaseio.com" 
}); 

var db = admin.database(); 
var ref = db.ref("myval"); 

ref.once("value",function(snapshot){ 
    console.log(snapshot.val()); 
}); 

Пример не возвращает никакого значения или ошибки, просто ждет. Конечно, в основном дереве базы данных есть дочерний элемент myval.

В чем проблема?

ответ

1

Решила проблему с помощью команды firebase.

Включение протоколирования перед определением базы данных с помощью:

admin.database.enableLogging(true); 
var db = admin.database(); 

помогает при отладке. После этого я получил ошибку:

Не удалось получить маркер: Ошибка: Ошибка получения маркера доступа: invalid_grant (Invalid JWT: Знак должен быть недолгим токен и в разумные сроки)

И в соответствии с этим : Authentication on google: OAuth2 keeps returning 'invalid_grant' Мой часовой пояс не был синхронизирован соответствующим образом с сервером ntp, который необходим для новой аутентификации администратора в моем случае.

Тогда (в убунту 14.04) Установка часового пояса (часовых поясов здесь: '$ timedatectl список-TimeZones'):

$ SUDO timedatectl установленный часовой пояс desired_timezone

решить эту проблему!

Спасибо за помощь.

Смежные вопросы