2013-04-26 15 views
5

Uygulamamın arka ucu olarak parse.com kullanıyorum, kullanıcının facebook veya twitter hesabı üzerinden giriş yapmasını sağlar. Ayrıca twitter/facebook'u önceden var olan hesabına bağlama özelliği de vardır. Onun facebook hesabına yeni PFUser üzerinden bir kullanıcı girişlerini bulut oluşturulursaParse.com PFUser Twitter ve facebook hesabı bağlanıyor mu?

: Burada

sorundur. Aynı kullanıcı twitter hesabına tekrar giriş yaparsa, bulut üzerinde başka bir PFUser oluşturulur. Kullanıcı twitter hesabına facebook hesabını bağlamak istiyorsa, parse.com numaralı hesaba "bu twitter hesabı zaten başka bir kullanıcıya bağlı."

İki tane PFUsers burada nasıl birleştirebilirim? Bu sorunu çözmek için bana bir yaklaşım önerebilir misiniz?

+0

https://parse.com/questions/merging-pfusers –

+0

Burada önerilen yol, aygıt başına yalnızca bir kullanıcı etkinleştirir. Bunu istemiyorum. Başka bir öneri var mı? – Ashwani

cevap

3

Üzülerek, birden fazla PFUser bağlı bir Facebook veya Twitter hesabı olması mümkün görünmemektedir. Ayrıca, iki daha fazla PFUser girişi birleştirmek mümkün görünmüyor - Bkz. Parse's answer here.

Bunun yerine yapmak istediğiniz şey, PFUser tablosundaki verileri kesinlikle yetkilendirme amaçlı tutmak ve verilerin kalanını yeni ve ayrılmış bir Parse sınıfında tutmaktır (PFUser girişleri tarafından işaret edilen userData).

Bu anlamda, aynı userData girdisini işaret eden birden çok PFUser girdisini kullanabileceksiniz. Bu nedenle, Parse arka ucunda belirli bir Twitter hesabına bağlı önceden varolan bir PFUser girdiniz varsa, kullanıcıyı o belirli PFUser'e giriş yapman ve daha sonra bu girişi daha önce varolan userData girişinize yönlendirmeniz en iyisidir.

4

Herhangi bir kod görmeden, bir twitter hesabını bağlamaya çalıştığınızda, PFTwitterUtils logInWithBlock numaralı telefonu aradığınız anlaşılıyor. Bu yanlış bir yaklaşım olacaktır, çünkü facebook ile oturum açarak yaratılan PFUser'i kullanmak yerine yeni bir PFUser oluşturacaktır.

Bunun yerine yapmak istediğiniz PFUser'u bir twitter hesabıyla bağlamak için PFTwitterUtils yöntemini kullanın. The Parse documentation bunu yapmak için aşağıdaki kodu gösterir.

PFUser *user = [PFUser currentUser]; 
if (![PFTwitterUtils isLinkedWithUser:user]) { 
    [PFTwitterUtils linkUser:user block:^(BOOL succeeded, NSError *error) { 
     if ([PFTwitterUtils isLinkedWithUser:user]) { 
      NSLog(@"Woohoo, user logged in with Twitter!"); 
     } 
    }]; 
} 
+0

Üzgünüm, ama beni yanlış anladınız, zaten yazdığınız aynı kodu kullanıyorum. Bir twitter hesabı (daha önce başka bir PFUser'e bağlanmış) geçerli hesabıma bağlamaya çalıştığımda sorun oluşuyor. Bu twitter hesabının başka bir kullanıcıya zaten bağlı olduğu hatasını atar. Bunu Nasıl Çözebilirim? – Ashwani

4

Sen ise tek bir şey yapabilirsiniz:

Eğer zamanın bir noktada kullanıcıyı bağlantısını kaldırma gereken başka herhangi Facebook/Twitter hesabıyla geçerli kullanıcı bağlantı

. Çıkış yaptığınızda, mevcut kullanıcının Facebook/Twitter ile bağlantılı olup olmadığını kontrol etmeniz gerektiğini söyleyelim mi? Mevcut kullanıcı diğer kullanıcının herhangi bağlanması da

Eğer tekrar Facebook kullanıcı için bu

gibi başka bir kullanıcı ile Facebook/Twitter kullanıcı bağlantı böylece bağlantısını kaldırmak gerekir:

if([PFFacebookUtils isLinkedWithUser:[PFUser currentUser]]){ 

       [PFFacebookUtils unlinkUserInBackground:[PFUser currentUser] block:^(BOOL Success,NSError *unlinkError){ 
        if(!unlinkError){ 
         // User unlinked 
        }else{ 
         // Erro while unlink user 
        } 
       }]; 
      } 
Heyecan kullanıcı için

:

if([PFTwitterUtils isLinkedWithUser:[PFUser currentUser]]){ 

       [PFTwitterUtils unlinkUserInBackground:[PFUser currentUser] block:^(BOOL Success,NSError *unlinkError){ 
        if(!unlinkError){ 
         // unlink user 
        }else{ 
         // Error while unlink 
        } 
}]; 
} 
İlgili konular