今天要做有關第三方登陸與LeanCloud數(shù)據(jù)關聯(lián)的存儲,遇到了一些問題,現(xiàn)在分享給大家。
首先是第三方登陸后诲侮,我們應該如何解決第三方應用資料與本應用的關聯(lián)。一開始我認為是只要第三方登陸了本應用就有了相應的資料箱蟆,然并卵沟绪!這兒我們就需要把第三方的資料存儲到本應用中,首先我們先把我們需要的用戶資料取出來空猜,并在本應用的LeanCloud注冊和登陸绽慈。這個問題就解決了!
我這兒是微博的第三方登陸大家參考一下辈毯!
[ShareSDK getUserInfo:SSDKPlatformTypeSinaWeibo
onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error)
{
if (state == SSDKResponseStateSuccess)
{
AVUser *user1 = [AVUser user];
user1.username = user.nickname;// 設置用戶名
user1.password = user.uid;// 設置密碼
//? ? ? ? ? ? user1.email = emal;// 設置郵箱
[user1 signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (succeeded) {
NSLog(@" 注冊成功");
} else {
}
}];
//然后在登陸
[AVUser logInWithUsernameInBackground:name password:user.uid block:^(AVUser *user, NSError *error) {
if (user != nil) {
NSLog(@" 登陸成功");
NSLog(@"%@",user.objectId);
//登陸成功過后 把用戶的 objectId 保存下來 (后面需要)
[[NSUserDefaults standardUserDefaults]setObject:user.objectId forKey:@"objectId"];
[[NSUserDefaults standardUserDefaults]setObject:@"1" forKey:@"isLogin"];
AVUser *uuss = [AVUser currentUser];
NSLog(@"userName = %@",uuss.username);
NSLog(@"userEmail = %@",uuss.email);
NSLog(@"userPassword = %@",uuss.password);
} else {
}
}];
}
else
{
NSLog(@"%@",error);
}
}];
后面有一個問題可能是初學者 最難想到的坝疼。我就是??
那就是我們在注冊登陸過后 怎么把后面的數(shù)據(jù)個用戶關聯(lián)起來呢?
這兒我們可能會因為新建一個表后每一個表插入數(shù)據(jù)也會有一個objectId 谆沃,可能會被這個所迷惑钝凶。其實我們需要重新新建一個字段,用來存儲上面所保存的User objectId唁影,讓這個字段與資料關聯(lián)腿椎。
通過這個字段我們可以查詢到自己需要的數(shù)據(jù)桌硫。比如:
我這兒根據(jù)年月查詢用戶的信息,其中objectId就是鎖定用戶的啃炸。
我是初學者铆隘,所以說 不對之處請諒解!