使用电话身份验证登录匿名登录的用户时出现的问题

时间:2020-07-14 18:05:17

标签: firebase react-native expo

方案是,我创建了一个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);
    }

连同电话号码和验证码一起发送代码,该代码返回 verificationId

验证使用以下代码,

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;
        });

该代码有效,并将匿名用户链接到经过电话验证的用户,并返回非匿名用户对象。

现在的问题是,如果我在设备上重新运行该应用程序,它将不再维持该用户的身份,并再次以匿名用户身份登录。

先谢谢了。

0 个答案:

没有答案