Сценарий: я создал приложение expo, в котором, если пользователя нет, я вхожу в систему анонимно с помощью firestore. Я использую свое устройство iPhone для тестирования приложения. Если я остановлю приложение и запущу его снова, приложение будет поддерживать пользователя, с которым я вошел анонимно.
Теперь я реализовал аутентификацию по телефону с помощью следующего кода:
try {
var phoneNumber = this.state.phoneNumber;
const phoneProvider = new f.auth.PhoneAuthProvider();
const verificationId = await phoneProvider.verifyPhoneNumber(
phoneNumber,
this.recaptchaVerifier
);
this.setState({ verificationId: verificationId });
this.setState({ index: 1 });
} catch (err) {
alert(err.message);
}
, где вместе с номером телефона и recaptcha , он отправляет код, который возвращает verifyId
для проверки использования следующего кода:
const verificationId = this.state.verificationId;
const verificationCode = this.state.verificationCode;
const credential = f.auth.PhoneAuthProvider.credential(
verificationId,
verificationCode
);
await auth.currentUser.linkWithCredential(credential)
.then(function (usercred) {
console.log("anonymous account upgraded", usercred);
}).catch(function (error) {
console.log("Error upgrading anonymous account", error);
return;
});
Код работает и связывает анонимного пользователя с пользователем, прошедшим аутентификацию по телефону, и возвращает объект пользователя который также не является анонимным.
Теперь проблема в том, что если я повторно запускаю приложение на своем устройстве, оно больше не поддерживает пользователя и снова входит в систему как анонимный пользователь.
Спасибо за заранее ..