2015-06-18 6 views
15

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

उत्तर

36

सबसे पहले मेरा सुझाव है कि आप Firebase Guide (Link to old Firebase Guide) पढ़कर फायरबेस से परिचित होने में कुछ समय बिताएं। अपने स्वयं के प्रश्न का उत्तर देने के लिए आपको जो कुछ भी पता होना चाहिए वह वहां उपलब्ध है। लेकिन सादगी के लिए मैं यहाँ एक उदाहरण रखा जाएगा: (स्रोत:: Understanding Security) (पुराने स्रोत: Understanding Security)

{ 
    "rules": { 
    "users": { 
     "$user_id": { 
     ".write": "$user_id === auth.uid" 
     } 
    } 
    } 
} 

मैं

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

भंडारण डेटा: (स्रोत: Firebase Authentication) (पुराने स्रोत: User Authentication)

// Get a reference to the database service 
var database = firebase.database(); 
// save the user's profile into Firebase so we can list users, 
// use them in Security and Firebase Rules, and show profiles 
function writeUserData(userId, name, email, imageUrl) { 
    firebase.database().ref('users/' + userId).set({ 
    username: name, 
    email: email 
    //some more user data 
    }); 
} 

जिसके परिणामस्वरूप firebase डेटा इस तरह दिखेगा:

{ 
    "users": { 
    "simplelogin:213": { 
     "username": "password", 
     "email": "bobtony" 
    }, 
    "twitter:123": { 
     "username": "twitter", 
     "email": "Andrew Lee" 
    }, 
    "facebook:456": { 
     "username": "facebook", 
     "email": "James Tamplin" 
    } 
    } 
} 

और अंत में की retreiving कम से कम डेटा, यह कई तरीकों से किया जा सकता है लेकिन इस उदाहरण के लिए मैं फायरबेस गाइड से एक साधारण उदाहरण का उपयोग कर रहा हूं: (स्रोत: Read and Write data) (पुराना स्रोत: Retreiving Data)

//Get the current userID 
var userId = firebase.auth().currentUser.uid; 
//Get the user data 
return firebase.database().ref('/users/' + userId).once('value').then(function(snapshot) { 
    //Do something with your user data located in snapshot 
}); 

संपादित करें: वापसी डेटा की

तो जोड़ा उदाहरण है जब आप उपयोगकर्ता चहचहाना के रूप में लॉग इन हैं: 123 आप स्थान अपने प्रयोक्ता आईडी के आधार पर करने के लिए एक संदर्भ मिल जाएगा और यह डेटा प्राप्त होगा:

"twitter:123": { 
      "username": "twitter", 
      "email": "Andrew Lee" 
     } 
+0

हाँ, आंद्रे। धन्यवाद। अब कल्पना करें कि उपर्युक्त कोड से उपयोगकर्ता एक डेटाबेस है जहां विभिन्न बाहरी लोग (उदा। "सरल लॉग इन: 123", "ट्विटर: 123" आदि) अपने खाते बनाते हैं, प्रत्येक बाहरी व्यक्ति को अपना डेटा कैसे प्राप्त कर सकता है? – DIPXOID

+0

जो पहले से ही मेरे उदाहरण के अंतिम भाग में होता है, **। बच्चा (authData.uid) ** अपने अद्वितीय उपयोगकर्ता आईडी (सरल लॉग इन: 213, ट्विटर: 123, ....) –

+0

का उपयोग कर फायरबेस का संदर्भ देता है मेरे उत्तर में जोड़ा गया रिटर्न डेटा –

-2
angularfire

नियंत्रक कोड के साथ कोणीय 1 में

:

var ref = firebase.database().ref().child("users/" + firebase.auth().currentUser.uid); 

var syncUserObject = $firebaseObject(ref); 
syncUserObject.$bindTo($scope, "data"); 

HTML दृश्य:

<input type="text" ng-model="data.username"/> 
<!-- all changes from our Firebase database magically appear here! --> 
<p>You said: {{ data.username }}</p> 

यह एक बहुत ही अच्छा तीन तरह से डेटा बाइंडिंग बनाता है!

संबंधित मुद्दे