1

Utilisation du SDK admin Node.js avec fonctions Firebase je reçois un délai d'attente chaque fois que je tente d'accéder à la base de données en temps réel. Cela se produit uniquement lors du test d'une fonction localement (firebase serve --only functions,hosting) et lorsque l'application par défaut est initialisée à l'aide du functions.config().firebase.Firebase Node.js temporisations SDK admin lorsque vous essayez d'accéder en temps réel DB

Ceci est un nouveau comportement qui a commencé juste un couple il y a quelques jours. Toutefois, si j'essaie d'initialiser l'application par défaut avec le fichier serviceAccount.json, tout fonctionne comme prévu.

J'utilise la version firebase-admin4.2.1 et firebase-functions la version 0.5.9 .

j'ai écrit une fonction avant droite http triggered qui échoue en raison de délai d'attente:

const functions = require('firebase-functions'); 
const admin = require('firebase-admin'); 

admin.initializeApp(functions.config().firebase); 
const db = admin.database(); 

exports.testDbConnection = functions.https.onRequest((req, res) => { 
    return admin.database().ref().once('value') 
    .then(function(snapshot) { 
     res.json(snapshot); 
    }).catch(function(error) { 
     res.json(error); 
    }); 
}); 
+0

Pouvez-vous essayer de régler la variable d'environnement 'GOOGLE_APPLICATION_CREDENTIALS' pour pointer vers votre compte de service fichier JSON? –

+0

Oui, c'est ce que j'ai fait pour résoudre le timeout db en temps réel. En fait, je me demandais si c'était un bug dans le SDK admin/fonctions firebase qui devrait être mis en place. –

Répondre

0

de la documentation

fin a toujours une fonction HTTP avec send(), redirect(), ou à la fin (). Dans le cas contraire, votre puissance fonction de continuer à fonctionner et être force terminée par le système

voir https://firebase.google.com/docs/functions/http-events#terminate_http_functions

+0

Merci pour la réponse, mais 'res.json()' est la même chose que res.send à l'exception de l'envoi de la réponse en tant que JSON un texte non. J'ai consulté la documentation et, comme je l'ai dit, tout s'est bien passé jusqu'à il y a quelques jours, aucun changement n'a été apporté au code. –

0

Cela peut dépendre de la version firebase-tools que vous utilisez, mais semble familier à ce Github issue

La solution consiste à mettre à niveau vers la dernière version de l'interface de ligne de commande ou à utiliser la solution de contournement:

  1. Passez à https://cloud.google.com/console/iam-admin/serviceaccounts
  2. Cliquez sur « Créer un compte de service », lui donner un nom (par exemple émulateur), attribuez-lui le rôle Projet> Propriétaire. Cochez la case "Fournir une nouvelle clé privée", choisissez "JSON".
  3. Enregistrez le fichier quelque part sur votre ordinateur
  4. Run export GOOGLE_APPLICATION_CREDENTIALS="absolute/path/to/file.json"
  5. Run firebase serve --only functions
+0

Merci pour votre aide, c'est en effet ce que j'ai fait pour contourner ce bug actuel –