我正在制作一个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产生副作用。
我已在设置中启用了电子邮件/密码和匿名身份验证。我不知道这里出了什么问题,为什么在我尝试注册和链接用户时会给我用户名和密码错误。
啊,傻。我来自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(() => ...)
.....)