每当用户更新其身份验证配置文件时,我可以更新用户文档吗



我正在使用flutter,并且我有一个AuthenticationProvider。每当我的用户用手机登录时,我也会更新他的个人资料。但我的问题是无法查询身份验证用户。所以我读到我应该保留一个单独的用户集合。现在我的问题是,每当用户更新其身份验证配置文件时,是否可以更新我的用户集合中的用户文档?我想用云功能来做这件事,但我注意到只有一个创建和删除?那么我该怎么做呢?

这就是我目前拥有的

身份验证提供商

Future<void> _verificationComplete(BuildContext context, AuthCredential authCredential, userInfo.UserInfo userInfo) async {
AuthResult authResult = await FirebaseAuth.instance.signInWithCredential(authCredential);
final userUpdateInfo = UserUpdateInfo();
userUpdateInfo.displayName = userInfo.name;
userUpdateInfo.photoUrl = userInfo.photoUrl;
await authResult.user.updateProfile(userUpdateInfo);
await authResult.user.reload();
user = UserModel.fromFirebase(authResult.user);
_status = AuthenticationStatus.authenticated;
notifyListeners();
}

云功能

export const onUserCreated = functions.region('europe-west1').auth.user().onCreate(async user => {
const privateUserData = {
activeGroup: '',
cloudMessagingToken: '',
}
const publicUserData = {
name: '',
photoUrl: '',
}
const promises = [];
promises.push(firestore.collection('users').doc(user.uid).collection('private').doc('data').set(privateUserData));
promises.push(firestore.collection('users').doc(user.uid).collection('public').doc('data').set(publicUserData));
return await Promise.all(promises);
});

当用户更新其Firebase身份验证配置文件时,没有云函数触发器。我强烈建议提交一个功能请求,因为它被错过了很多。

目前,最接近的方法是使用直接从应用程序代码中调用的云函数。有两个选项:

  1. 让您的应用程序代码首先调用Firebase Authentication API,然后在完成后,让它调用您的自定义云函数来更新数据库。

  2. 让你的应用程序代码立即调用云函数,然后让云函数更新用户配置文件和数据库。

我经常采用第一种方法,但看到更多的开发人员采用第二种方法。我认为他们的方法可能更简单,但我只是还没有抽出时间

相关内容

  • 没有找到相关文章

最新更新