javascript - functions - firebase web example
Error de Google Firebase(FunciĆ³n devuelta indefinida, promesa esperada o valor) (1)
Como Frank indica en su comentario sobre su publicación, la declaración de devolución que está produciendo la advertencia es esta:
if (post.sanitized) return;
La advertencia puede silenciarse devolviendo un valor ficticio (por ejemplo, nulo, falso, 0). El valor no se usa.
Las versiones anteriores de Cloud Functions no se quejaban cuando una función salía utilizando una declaración de devolución sin valor. Eso explica por qué ves el return;
en el video que vinculó y en firebase.google.com/docs/functions/terminate-functions . El comentario sobre la pregunta de Firebaser Frank van Pufeelen explica por qué se realizó el cambio.
La forma más sencilla de eliminar la advertencia es agregar un valor de retorno, como Frank sugirió:
if (post.sanitized) return 0;
Otra opción es cambiar el desencadenador de onWrite()
a onCreate()
. Entonces la función no se invocará cuando la publicación se desinfecte y no se necesite la verificación que produce la advertencia:
exports.sanitizePost = functions.database
.ref(''/test/{pushId}'')
.onCreate(event => { // <= changed from onWrite()
const post = event.data.val();
//if (post.sanitized) return; // <= no longer needed
console.log(''Sanitizing new post'', event.params.pushId);
console.log(post);
//post.sanitized = true; // <= not needed when trigger is onCreate()
post.title = sanitize(post.title);
post.body = sanitize(post.body);
return event.data.ref.set(post);
});
Estoy desarrollando Servidor con Firebase.
Copié Google Video de desarrollador en Youtube .
Funciona bien, pero en el registro hay un error:
Función devuelta indefinida, esperada Promesa o valor
Dice que la función se devolvió undefined
, pero hago que la function
devuelva una promise
`set`
¿Como puedo resolver esto?
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);
})
Soy un principiante de Firebase, Nodejs.