Я слежу за реакцией на родную документацию Firebase (https://rnfirebase.io/docs/v5.x.x/auth/phone-auth) при авторизации телефона) и не понимаю, нужна ли (или не нужна) reCAPTCHA.
Документы не передают второй параметрметод signInWithPhoneNumber()
, но при вызове метода я получаю сообщение об ошибке, спрашивающее о параметре * 1006. * Поскольку я пишу приложение для iO и Android, я использовал веб-соединение с Firebase и не использую сгенерированный JSONЯ полагаю, что это моя проблема, так как мне кажется, что я вызываю API с немобильного устройства.
Является ли Firebase Web лучшим способом подключения кросс-платформенного приложения React Native? способ сгенерировать код reCAPTCHA?
Документы Firebase говорят о невидимом reCAPTCHA, но они предоставляют код только для HTML с идентификатором кнопки и еще много чего. (Я попытался дать и идентификатор как реквизит, но нашелбезуспешно) https://firebase.google.com/docs/auth/web/phone-auth
Мой конфигурационный файл:
import firebase from 'firebase';
class Config {
constructor() {
if (!firebase.apps.length) {
firebase.initializeApp({
apiKey: "AIaskdjf93rlaksdjf99999",
authDomain: "myDomain.firebaseapp.com",
databaseURL: "https://myDomain.firebaseio.com",
projectId: "myDomain",
storageBucket: "",
messagingSenderId: "88827277272",
appId: "somenumbersomitted",
measurementId: "akjdsfkljad"
});
}
}
login = async (user, success_callback, failed_callback) => {
await firebase
.auth()
.signInWithEmailAndPassword(user.userName, user.password)
.then(success_callback, failed_callback);
};
//todo:: need to update signInWithPhoneNumber second param to be the recaptcha token
loginWithPhone = async (phoneNumber, success_callback, failed_callback) => {
var applicationVerifier = ?????;
await firebase
.auth()
.signInWithPhoneNumber(phoneNumber, applicationVerifier)
.then(success_callback, failed_callback);
};
//todo: figure out how to get this method to work in RN. Not able to take in button ID...
recaptchaVerifier = async (phoneNumber, success_callback, failed_callback) =>{
window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('sign-in-button', {
'size': 'invisible',
'callback': function(response) {
loginWithPhone(phoneNumber, success_callback, failed_callback);
}
});
};
}
const config = new Config();
export default config;