2017-03-18 1 views
0

ich mag Wert in der Datenbank haben, und ich möchte den Wert Zustand ändern, wenn Gleichen mehr als 10. Hier ist meine DatenbankstrukturFirebase Funktion nicht immer genannt

"QUESTIONS" : { 
"ENGLISH" : { 
    "QUESTIONID" : 1 
}, 
"SPANISH" : { 
    "1" : { 
    "ANSWER" : true, 
    "LIKES" : 11, 
    "MADEBY" : "lScayuKFOrOWyenYYxbL3lJ8Utt1", 
    "QUESTION" : "djshsvs", 
    "SPAM" : 1, 
    "STATE" : "WAITING" 
    }, 
    "2" : { 
    "ANSWER" : true, 
    "LIKES" : 2, 
    "MADEBY" : "lScayuKFOrOWyenYYxbL3lJ8Utt1", 
    "QUESTION" : "djdbdb", 
    "STATE" : "WAITING" 
    }, 
    "3" : { 
    "ANSWER" : true, 
    "MADEBY" : "lScayuKFOrOWyenYYxbL3lJ8Utt1", 
    "MISPELLED" : 1, 
    "QUESTION" : "fhki", 
    "STATE" : "WAITING" 
    }, 
    "4" : { 
    "ANSWER" : true, 
    "LIKES" : 1, 
    "MADEBY" : "lScayuKFOrOWyenYYxbL3lJ8Utt1", 
    "QUESTION" : "bkkki", 
    "STATE" : "WAITING" 
    }, 
    "QUESTIONID" : 4 
} 

},

Meine Feuerbasis Funktion

'use strict'; 

const functions = require('firebase-functions'); 
const admin = require('firebase-admin'); 
admin.initializeApp(functions.config().firebase); 

exports.newPost = functions.database 
.ref('/QUESTIONS/SPANISH/{postID}'/"LIKES") 
.onWrite(function(event) { 

const likes=event.data.value; 
const id=event.params.postID; 

if(likes>10){ 

    return event.data.ref.parent.child('STATE').set("ACEPTED"); 
} 
return false; 

}); 

Die Funktion richtig eingesetzt wird und alle, aber wenn ich die Gleichen erhöhen nichts passiert, was ich falsch mache?

+0

Sie haben ein Foto des JSON enthalten Baum in deiner Frage. Bitte ersetzen Sie dies durch den tatsächlichen JSON als Text, den Sie einfach erhalten, wenn Sie auf den Link JSON exportieren in [Ihrer Firebase-Datenbankkonsole] klicken (https://console.firebase.google.com/project/_/database/data/). . Da der JSON als Text durchsuchbar ist, können wir ihn einfach verwenden, um mit Ihren tatsächlichen Daten zu testen und sie in unserer Antwort zu verwenden, und im Allgemeinen ist dies nur eine gute Sache. –

+0

Sorry, ich habe es ersetzt. –

Antwort

1

Ihre Zeichenfolge für die Referenz sieht nicht richtig aus. Sie haben dies:

'/QUESTIONS/SPANISH/{postID}'/"LIKES" 

Sollte dies nicht stattdessen sein?

'/QUESTIONS/SPANISH/{postID}/LIKES' 
+0

Auch anders: ES6 String Templates sind in Back-Ticks eingeschlossen. So '\'/FRAGEN/SPANISCH/{postID}/LIKES \ ''. –

+0

Versuchte beide, keiner von ihnen funktioniert, wird gerufen, aber der Staat wird nicht gesetzt. Irgendwelche Ideen über was könnte falsch sein? –

0

Außer Referenzfolge ändern (wie oben vorgeschlagen), versuchen Sie auch diese Zeile zu ändern:

const likes=event.data.value; 

auf diese:

const likes=event.data.val(); 
Verwandte Themen