Pracuję nad serwerem z Firebase.Google Firebase Error (funkcja zwróciła niezdefiniowaną, oczekiwaną obietnicę lub wartość)
Skopiowałem wideo programisty Google na numer Youtube.
To działa dobrze, ale w dzienniku jest błąd:
Function returned undefined, expected Promise or value
Mówi funkcja powrócił undefined
, ale robię function
zwrócić promise
`set``
Jak mogę rozwiązać ten problem?
function sanitize(s) {
var sanitizedText = s;
console.log('sanitize params: ', sanitizedText);
sanitizedText = sanitizedText.replace(/\bstupid\b/ig, "wonderful");
return sanitizedText;
}
exports.sanitizePost = functions.database
.ref('/posts/{pushId}')
.onWrite(event => {
const post = event.data.val();
if (post.sanitized) return;
console.log('Sanitizing new post', event.params.pushId);
console.log(post);
post.sanitized = true;
post.title = sanitize(post.title);
post.body = sanitize(post.body);
return event.data.ref.set(post);
})
Jestem początkujący w Firebase, Nodejs.
Spróbuj 'if (post.sanitized) return true;' –
@FrankvanPuffelen: Ten post był coraz dużo widoków. W komentarzu od AaronJo w mojej odpowiedzi poniżej, dzieli się tym, że wsparcie dla Firebase wskazało zmianę wymagającą obietnicy lub wartość wskaźnika skalarnego była zamierzona i pozostanie. Czy możesz podzielić się spostrzeżeniami na temat przyczyn wprowadzenia zmiany? Jakie są korzyści? Kiedy zwracana jest wartość nie-Obietnicza, czy wartość ma jakieś znaczenie? –
Po jawnym zwróceniu wartości jasne jest, że funkcja jest wykonana. Kiedy wyraźnie zwrócisz obietnicę, jest oczywiste, że funkcja musi pozostać aktywna, dopóki obietnica nie zostanie rozwiązana/odrzucona. Jeśli nie zwrócisz wartości, nie jest jasne, w jakim stanie jest ta funkcja. –