12

के साथ अतिरिक्त उपयोगकर्ता जानकारी जोड़ें मैंने अपने एंड्रॉइड ऐप के साथ फायरबेस एथ एकीकृत किया है। मान लें कि उपयोगकर्ता के पास [email protected] मेल है। मैं उपयोगकर्ता को उपयोगकर्ता, व्यवसाय और पते के नाम की तरह कुछ अतिरिक्त जानकारी जोड़ना चाहता हूं। मैं अपने एंड्रॉइड ऐप के साथ उपयोगकर्ता ऑथ टेबल को कैसे कर सकता हूं?फ़ायरबेस

क्या मुझे इसके लिए कोई एपीआई लिखने की ज़रूरत है?

+0

वास्तविक डेटाबेस की तरह एक तालिका में उपयोगकर्ता जानकारी स्टोर करने के लिए करना चाहते हैं या मेल से व्यक्तिगत जानकारी प्राप्त करना चाहते हैं आईडी –

+1

हां, मैं उन्हें एक वास्तविक डेटाबेस की तरह चाहता हूं। हो सकता है कि एक नोस्कल जेसन पर्याप्त होगा या टेबल आगे बढ़ने के लिए अच्छा होगा। अब मैं उपयोगकर्ता बनाने के लिए auth.createUserWithEmailAndPassword को कॉल कर रहा हूं और मैं उन्हें अपने कंसोल में ढूंढ रहा हूं। –

+0

आप इस लिंक भी हो तुम में मदद करता है उल्लेख firebase –

उत्तर

7

पहले, DB में एक users निर्देशिका बनाने। फिर, उपयोगकर्ता की अद्वितीय आईडी का उपयोग करके आप ऑथन प्रक्रिया से प्राप्त होते हैं, उपयोगकर्ता जानकारी को users/{userid} के अंतर्गत स्टोर करें।

इस लक्ष्य को हासिल करने के लिए आपको Firebase डेटाबेस के विवरण में प्राप्त करने की आवश्यकता। यहाँ देखें: https://firebase.google.com/docs/database/android/save-data

+0

वहाँ बनाने के लिए एक रास्ता है कस्टम यूआईडी जैसे मैं ईमेल और पासवर्ड के साथ उपयोगकर्ता बनाना चाहता हूं लेकिन 1 –

+0

@MasterYoda के रूप में uid एक कारण है कि फायरबेस डेटाबेस अपनी अद्वितीय आईडी के रूप में वृद्धि का उपयोग नहीं कर रहा है। इसके बजाए वे अपना अनूठा पहचानकर्ता –

+0

@teckwei प्रदान करते हैं, वहां एक नोड मॉड्यूल है जिसका नाम 'फायरबेस-एडमिन' है जिसके साथ यह संभव है। धन्यवाद। मुझे कुछ दिन पहले मिल गया। –

2

आप किसी अन्य डेटाबेस तालिका कहते हैं कि "उपयोगकर्ता" बनाने के लिए किया है। सफल साइनइन पर, पहली बार साइन अप करने के लिए आपको उपयोगकर्ता तालिका में एक नई पंक्ति बनाना होगा।

public static void writeNewUser(DatabaseReference databaseReference, String userId, String name, String email, int accountType) { 
    User user = new User(name, email, accountType); 

    databaseReference.child("users").child(userId).setValue(user); 
} 

आप उल्लेख कर सकते हैं https://github.com/firebase/quickstart-android/tree/61f8eb53020e38b1fdc5aaeddac2379b25240f3b/database

5

ऐसा करने के लिए किसी भी कस्टम कोड लिखने की जरूरत नहीं है। फायरबेस में पहले से ही विशेषताएं हैं जिनका आप उपयोग कर सकते हैं।

पहली बात करने की ज़रूरत होगी सुनिश्चित करें कि उपयोगकर्ता केवल डेटा वे स्टोर करने के लिए उपयोग कर सकते है है। ऐसा करने के लिए, Database/Rules पर जाकर यह करने के लिए अपने नियमों को बदलने: फिर

{ 
"rules": { 
    "my_app_user": { 
    "$uid": { 
     ".write": "auth != null && auth.uid == $uid", 
     ".read": "auth != null && auth.uid == $uid" 
    } 
    } 
} 
} 

, एक Firebase डेटाबेस में नए विवरण को बचाने के लिए, ऐसा करते हैं:

 MyAppUser user = new MyAppUser(); 
     user.setAddressTwo("address_two"); 
     user.setPhoneOne("phone_one"); 
     ... 

     mDatabaseReference.child("my_app_user").child(firebaseUser.getUid()).setValue(user). 
       addOnCompleteListener(DetailsCaptureActivity.this, 
            new OnCompleteListener<Void>() { 
        @Override 
        public void onComplete(@NonNull Task<Void> task) { 
         if (task.isSuccessful()) { 
          ... 

बच्चे my_app_user चाहिए के नाम अपने कोड और फायरबेस नियम दोनों में मेल करें अन्यथा यह जारी नहीं रहेगा।

सब कुछ के रूप में करने के लिए, आप अपने डेटाबेस में विवरण दिखाई देने चाहिए माना जाता है चला जाता है:

enter image description here