Разработчик Twilio здесь.
Из того, что я вижу в библиотеке Authy Node , которую я предполагаю, вы используете, отправка запроса API не возвращает Promise. Вместо этого он построен с request и отвечает на асинхронные запросы, используя только обратные вызовы. Вы имеете дело с обратным вызовом, но вы возвращаете результат вызова асинхронной функции, который равен null
, а не результат обратного вызова.
Возможно, включение обратного вызова в качестве части вызова функции будет работать лучше:
import * as functions from 'firebase-functions';
const authy = require('authy')('mySecret');
export const getCode = functions.https.onCall((data, callback) => {
const { number, countryCode } = data;
return authy
.phones()
.verification_start(
number,
countryCode,
{ via: 'sms', locale: 'en', code_length: '4' },
callback
);
});
Затем вы можете использовать его так:
export default class test extends Component {
constructor() {
super();
}
componentWillMount() {
const getCode = firebase.functions().httpsCallable('getCode');
getCode({ number: 'theCorrectNumber', countryCode: '44' }, (err, res) => {
if (err) {
throw new functions.https.HttpsError(err);
}
const data = res;
console.log(data);
});
}
render() {
return <View />;
}
}
Дайте мне знать, поможет ли это вообще.