2013-04-26 9 views
5

मैं अपने आवेदन के बैकएंड के रूप में parse.com का उपयोग कर रहा हूं, यह उपयोगकर्ता को अपने फेसबुक या ट्विटर खाते से लॉगिन करने में सक्षम बनाता है। इसके अलावा ट्विटर/फेसबुक को अपने पूर्व-मौजूदा खाते से जोड़ने की सुविधा भी है। अपने facebook खाते में एक नया PFUser के माध्यम से एक उपयोगकर्ता के लॉगिन बादल पर बनाया गया है तोParse.com पीएफयूसर ट्विटर और फेसबुक अकाउंट लिंकिंग?

:

यहाँ समस्या है। यदि वही उपयोगकर्ता फिर से अपने twitter खाते के माध्यम से लॉग इन करता है तो PFUser क्लाउड पर बनाया गया है। अब उपयोगकर्ता अपने facebook खाते को अपने twitter खाते से लिंक करना चाहता है, parse.com "यह ट्विटर खाता पहले से ही किसी अन्य उपयोगकर्ता से कनेक्ट है।"

मैं यहां दो PFUsers कैसे विलय कर सकता हूं? क्या कोई मुझे इस मुद्दे को हल करने के लिए एक दृष्टिकोण सुझा सकता है?

+0

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

+0

यहां सुझाए गए तरीके से प्रति डिवाइस केवल एक उपयोगकर्ता सक्षम होगा। मुझे वह नहीं चाहिए। कोई अन्य सुझाव? – Ashwani

उत्तर

3

खेद, ऐसा लगता है कि यह संभव एक से अधिक PFUser से जुड़ा हुआ एक फेसबुक या ट्विटर खाते के लिए नहीं है। इसके अतिरिक्त, ऐसा लगता है कि दो और अधिक पीएफयूसर प्रविष्टियों को मर्ज करना संभव नहीं है - Parse's answer here देखें।

इसके बजाय आप क्या करना चाहते हैं, पीएफयूसर तालिका पर डेटा को प्राधिकरण उद्देश्यों के लिए सख्ती से रखना है और बाकी डेटा को एक नए और समर्पित पार्स क्लास में रखें (उपयोगकर्ता डेटा, पीएफयूसर प्रविष्टियों द्वारा इंगित करें)।

उस अर्थ में, आप एक ही उपयोगकर्ता डेटा प्रविष्टि को इंगित करने वाली एकाधिक पीएफयूसर प्रविष्टियों का उपयोग करने में सक्षम होंगे। इस प्रकार यदि आपके पास पार्स बैकएंड में किसी विशिष्ट ट्विटर खाते से जुड़ी पहले से मौजूद PFUser प्रविष्टि है, तो यह सर्वोत्तम है कि आप उस विशिष्ट PFUser पर उपयोगकर्ता लॉगिन करें, और उसके बाद उस प्रविष्टि को अपने पहले मौजूदा उपयोगकर्ता डेटा प्रविष्टि पर इंगित करें।

4

कोई भी कोड देखे बिना, ऐसा लगता है कि आप ट्विटर खाते को लिंक करने का प्रयास करते समय PFTwitterUtils logInWithBlock पर कॉल कर रहे हैं। यह गलत दृष्टिकोण होगा क्योंकि यह फेसबुक के साथ साइन इन करके बनाए गए मौजूदा पीएफयूसर का उपयोग करने के बजाय सिर्फ एक नया पीएफयूसर बना देगा।

इसके बजाय आप क्या करना चाहते हैं PFTwitterUtils विधि को PFUser को एक ट्विटर खाते से जोड़ने के लिए उपयोग करें। The Parse documentation ऐसा करने के लिए निम्न कोड दिखाता है।

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

मुझे खेद है, लेकिन आपने मुझे गलत पाया है, मैं पहले से ही उसी कोड का उपयोग कर रहा हूं जिसे आपने पोस्ट किया है। समस्या तब होती है जब मैं अपने वर्तमान खाते में एक ट्विटर खाते (जिसे पहले से जोड़ा गया है यानी एक और पीएफयूसर) लिंक करने का प्रयास करता हूं। यह त्रुटि फेंकता है कि यह ट्विटर खाता पहले से ही किसी अन्य उपयोगकर्ता से जुड़ा हुआ है। इसे कैसे हल किया जा सकता है? – Ashwani

4

आप एक बात जो है कर सकते हैं:

जब आप किसी अन्य किसी भी फेसबुक/ट्विटर खाते आप समय के कुछ बिंदु पर उपयोगकर्ता का लिंक हटाना होगा साथ वर्तमान उपयोगकर्ता लिंक। आइए मान लें कि जब आप लॉग आउट करते हैं तो आपको यह जांचने की आवश्यकता है कि वर्तमान उपयोगकर्ता फेसबुक/ट्विटर से जुड़ा हुआ है या नहीं?

यदि आपके वर्तमान उपयोगकर्ता अन्य उपयोगकर्ता से किसी के साथ जुड़ा हुआ है आप ऐसा लिंक रद्द करना है कि आप फिर से, किसी अन्य उपयोगकर्ता के साथ फेसबुक/ट्विटर उपयोगकर्ता लिंक कर सकते हैं इस

की तरह फेसबुक उपयोगकर्ता के लिए की जरूरत है:

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

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

ट्विटर उपयोगकर्ता के लिए:

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

       [PFTwitterUtils unlinkUserInBackground:[PFUser currentUser] block:^(BOOL Success,NSError *unlinkError){ 
        if(!unlinkError){ 
         // unlink user 
        }else{ 
         // Error while unlink 
        } 
}]; 
} 
संबंधित मुद्दे