MongoDB Stitch:linkWithCredential提供无效的用户名/密码

问题描述 投票:0回答:1

我正在制作一个React Native应用。用户进入应用程序时,我一直在实施匿名登录。完成某些操作后,用户可以注册。当我尝试用电子邮件和密码链接当前的匿名用户时,它显示[StitchServiceError:无效的用户名/密码]。我不知道为什么我一直在跟踪linkWithCredential完全相同的文档。

这是我的代码:

const auth = Stitch.defaultAppClient.auth;
const collection = Stitch.defaultAppClient
      .getServiceClient(RemoteMongoClient.factory, 'mongodb-atlas')
      .db('snack')
      .collection('users');
const {email, password, ...rest} = currentUser;
return from(
      auth.user.linkWithCredential(
        new UserPasswordCredential(email, password),
      ),
    ).pipe(switchMap(() => .....))

我正在使用Redux Observable产生副作用。

我已在设置中启用了电子邮件/密码和匿名身份验证。我不知道这里出了什么问题,为什么在我尝试注册和链接用户时会给我用户名和密码错误。

mongodb redux-observable mongodb-stitch
1个回答
0
投票

啊,傻。我来自Firebase背景。因此以为它会以相同的方式工作。但事实并非如此。

所以,我必须先创建一个帐户。然后链接它。在Firebase中。您可以直接关联该帐户,然后他们创建一个新帐户,并自动将其与您的匿名会话关联。

这里是更新的代码:

const {email, password, ...rest} = currentUser;

const emailPasswordClient = Stitch.defaultAppClient.auth.getProviderClient(
      UserPasswordAuthProviderClient.factory,
    );

    return from(
      emailPasswordClient.registerWithEmail(email, password),
    ).pipe(
      switchMap(() => {
        return from(
          auth.user.linkWithCredential(
            new UserPasswordCredential(email, password),
          ),
        ).pipe(
          switchMap(() => ...)
.....)
© www.soinside.com 2019 - 2024. All rights reserved.