यहाँ एक परीक्षण किया समाधान आप आवेदन कर सकते हैं (बस से पहले कुछ मिनट कार्यान्वित) है।
नया उपयोगकर्ता खाता बनाने के लिए आपको FirebaseAuth
के संदर्भ की आवश्यकता है। onCreate में
private FirebaseAuth mAuth1;
private FirebaseAuth mAuth2;
अब आप उन्हें प्रारंभ कर सकते हैं::
तो तुम जैसे दो अलग FirebaseAuth वस्तुओं बना सकते हैं
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
mAuth1 = FirebaseAuth.getInstance();
FirebaseOptions firebaseOptions = new FirebaseOptions.Builder()
.setDatabaseUrl("[Database_url_here]")
.setApiKey("Web_API_KEY_HERE")
.setApplicationId("PROJECT_ID_HERE").build();
FirebaseApp myApp = FirebaseApp.initializeApp(getApplicationContext(),firebaseOptions,
"AnyAppName");
mAuth2 = FirebaseAuth.getInstance(myApp);
//..... other code here
}
ProjectID पाने के लिए, वेबएपीआई कुंजी आप सेटिंग्स को प्रोजेक्ट पर जा सकते हैं आपके फायरबेस परियोजना कंसोल में।
अब आप mAuth2, नहीं mAuth1 उपयोग करने के लिए उपयोगकर्ता खाता बनाने के लिए। और फिर सफल पंजीकरण पर, आप उस mAuth2 उपयोगकर्ता को लॉग आउट कर सकते हैं।
उदाहरण:
private void createAccount(String email, String password)
{
mAuth2.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {
String ex = task.getException().toString();
Toast.makeText(RegisterActivity.this, "Registration Failed"+ex,
Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(RegisterActivity.this, "Registration successful",
Toast.LENGTH_SHORT).show();
mAuth2.signOut();
}
// ...
}
});
}
बिंदु है जहां आप (वास्तव में) चिंता करने की ज़रूरत:
व्यवस्थापक केवल नए उपयोगकर्ता खाते बनाने में सक्षम होना चाहिए। लेकिन उपर्युक्त समाधान सभी प्रमाणीकृत उपयोगकर्ता को एक नया उपयोगकर्ता खाता बनाने की अनुमति दे रहा है।
इसलिए इस समस्या को हल करने के लिए आप अपने फायरबेस रीयल-टाइम डेटाबेस की मदद ले सकते हैं। बस "is_user_admin
" जैसी कुंजी जोड़ें और मान को कंसोल से true
के रूप में सेट करें। कोई नया उपयोगकर्ता खाता बनाने की कोशिश करने से पहले आपको उपयोगकर्ता को सत्यापित करने की आवश्यकता है। और इस दृष्टिकोण का उपयोग करके आप अपना खुद का व्यवस्थापक सेट कर सकते हैं।
अभी तक, मुझे नहीं लगता कि एंड्रॉइड के लिए firebase-admin SDK
है। तो कोई उपरोक्त दृष्टिकोण का उपयोग कर सकते हैं।
देखें http://stackoverflow.com/a/38013551/209103 –