创建用户
开发者可以调用以下登录方式,登录或者创建一个用户:
获取当前登录的用户
订阅登录状态变化的回调函数
获取当前用户,推荐在
Auth
对象上设置一个回调函数,每当用户登录状态转变时,会触发这个回调函数,并且获得当前的 LoginState
:import cloudbase from "@cloudbase/js-sdk";const app = cloudbase.init({env: "your-env-id"});const auth = app.auth();// 设置一个观察者auth.onLoginStateChanged((loginState) => {if (loginState) {// 此时用户已经登录} else {// 没有登录}});
直接获取当前用户
您还可以使用
Auth.currentUser
属性来获取当前登录的用户。如果用户未登录,则 currentUser
为 null
:const user = auth.currentUser;if (user) {// 此时用户已经登录} else {// 没有登录}
获取用户个人资料
您可以通过
User
对象的各个属性来获取用户的个人资料信息:const user = auth.currentUser;let uid, nickName, gender, avatarUrl, location;if (user) {// 云开发唯一用户 iduid = user.uid;// 昵称nickName = user.nickName;// 性别gender = user.gender;// 头像URLavatarUrl = user.avatarUrl;// 用户地理位置location = user.location;}
更新用户个人资料
您可以使用
User.update
方法来更新用户的个人资料信息。例如:const user = auth.currentUser;user.update({nickName: "Tony Stark",gender: "MALE",avatarUrl: "https://..."}).then(() => {// 更新用户资料成功});
刷新用户资料信息
对于一个多端应用,用户可能在其中某个端上更新过自己的个人资料信息,此时其它端上可能需要刷新信息:
const user = auth.currentUser;// 刷新用户信息user.refresh().then(() => {// 刷新后,获取到的用户信息即为最新的信息const { nickName, gender, avatarUrl } = user;});