Пользовательские данные Firebase после ошибки аутентификации - PullRequest
0 голосов
/ 10 января 2019

Функция работает отлично, но если я хочу напечатать содержимое пользователя, я получаю в журнале Firebase эту информацию:

Функция вернула неопределенное, ожидаемое обещание или значение

Функция:

exports.accountCreate = functions.auth.user().onCreate(user => {
console.log("--->"+user.data);
console.log("ok");
});

Почему user.data не может получить информацию?

Спасибо

1 Ответ

0 голосов
/ 10 января 2019

Облачные функции выполняются в контейнере в управляемой среде. Среда старается свести к минимуму продолжительность работы контейнера, и для того, чтобы это сделать, она должна знать, когда ваша функция выполнена. Обычно в JavaScript-коде выполняется, когда последний } был выполнен, но это становится более сложным, когда вам также необходимо учитывать асинхронные операции. По этой причине Cloud Functions ожидает, что вы сообщите об этом, когда функция будет выполнена, в случае functions.auth.user().onCreate, возвращая значение или обещание.

Когда вы явно возвращаете значение, становится ясно, что функция выполнена. Когда вы явно возвращаете обещание, становится ясно, что функция должна оставаться активной, пока обещание не будет разрешено / отклонено. Когда вы не возвращаете значение, неясно, в каком состоянии находится функция.

В вашем случае исправление простое, а вы, например, просто return true до финала }.

exports.accountCreate = functions.auth.user().onCreate(user => {
  console.log("--->"+user.data);
  console.log("ok");
  return true;
});

Фактическое значение не имеет смысла, кстати, return null будет работать так же хорошо.

...