2017-08-21 1 views
0

Lorsque j'ai regardé les logs depuis les fonctions cloud de Firebase, j'ai remarqué que certaines fonctions avaient une erreur dans les logs avec une description de "SYSTEM_ERROR: système rencontré erreur inattendue. est l'une de ces fonctions. Comment puis-je le réparer?SYSTEM_ERROR: le système a rencontré une erreur inattendue. Fonction tuée. Fonctions du nuage

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

module.exports = functions.database.ref('/cards/{cardID}/interestedUsers').onWrite(event => { 
    const cardID = event.params.cardID; 

    console.log("interestedUsers", event.data.val(), cardID); 

    var currentInterestedUsers = []; 
    currentInterestedUsers = event.data.val(); 
    var previousInterestedUsers = []; 
    previousInterestedUsers = event.data.previous.val(); 

    if (event.data.previous.val() && currentInterestedUsers) { 
     var isNewPendingRequest = false; 
     if (currentInterestedUsers.length < previousInterestedUsers.length) { 
      currentInterestedUsers.forEach((interestedUser, index) => { 
       const interestedUserVal = interestedUser.val(); 
       const isApproved = interestedUser["isApproved"]; 
       console.log("result", interestedUser.val(), interestedUserVal); 
       if (isApproved == false) { 
        isNewPendingRequest = true; 
       } 
      }); 
     } 

     if (isNewPendingRequest == false) { 
      const cardRef = admin.database().ref("cards").child(cardID); 
      const setupIsNewPendingRequestPromise = cardRef.update({ 
       "isNewPendingRequest": false 
      }); 
      return Promise.all([setupIsNewPendingRequestPromise]); 
     }; 

     return console.log("interestedUsers deleting"); 
    }; 

    if (event.data.val() == null) { 
     console.log("event.data.val() == null"); 
     const cardRef = admin.database().ref("cards").child(cardID); 
     // check card 
     const cardCheckPromise = cardRef.once("value", function(cardCheckPromiseSnap, error){ 
      if (error) { 
       return console.log("cardCheckPromise", error); 
      }; 

      if (cardCheckPromiseSnap.val()) { 
       const checkCardID = cardCheckPromiseSnap.val()["id"]; 
       if (checkCardID) { 
        console.log("checkCardID", checkCardID); 
        const setupIsNewPendingRequestPromise = cardRef.update({ 
         "isNewPendingRequest": false 
        }); 
        return Promise.all([setupIsNewPendingRequestPromise]); 
       } else { 
        return console.log("checkCardID == null"); 
       } 
      } else { 
       return console.log("cardCheckPromiseSnap.val() == null"); 
      }; 
     }); 
     return Promise.all([cardCheckPromise]).catch(function(cardCheckPromiseError){ 
      console.log("cardCheckPromise error", cardCheckPromiseError.message, cardCheckPromiseError.messageId) 
     }); 
    } 


    return console.log("just update or adding a new interested user"); 
}); 
+1

Il y a eu quelques problèmes avec Cloud Functions aujourd'hui. Voir le [Firebase Status Dashboard] (https://status.firebase.google.com/). –

+0

@BobSnyder merci! – Alexander

Répondre

1

Vous pouvez essayer de redéployer votre application.

+0

Je peux le faire et je le ferai, mais quand je l'ai déployé, j'ai eu un message dans le terminal que tout s'est bien passé. – Alexander

0

Probablement une panne de GCF. Il y en avait un today et yesterday. Ces erreurs étaient lancées pendant la panne.

Solution Faites une pause et attendez que le nuage se cicatrise. Contactez l'assistance GCP si vous avez acheté un support.