2017-02-04 2 views
5

Я хочу, чтобы создать новую учетную запись пользователя из приложения при входе в систему как «админ пользователя», этот вопрос я просто хочу, чтобы создать это на самом деле не вход.Firebase создать пользователя без знака в

является его можно отключить автоматический знак при создании нового пользователя с помощью электронной почты/пароля.

Я вижу, что другие задавали этот вопрос по отношению к JS и быстро, но не могут найти какую-либо конкретную связанную с Android информацию. я пытаюсь достичь того же, как this person но с андроид

любая помощь оценили

+0

См. Http://stackoverflow.com/a/38013551/209103 –

ответ

3

Вот это проверенное решение можно применить (только реализовать несколько минут раньше).

Для создания новой учетной записи пользователя требуется ссылка FirebaseAuth.

Таким образом, вы можете создать два различных объектов FirebaseAuth как:

private FirebaseAuth mAuth1; 
private FirebaseAuth mAuth2; 

Сейчас в OnCreate вы можете инициализировать их как:

@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, ключ WebAPI вы можете перейти к Project Settings в вашей консоли проектора firebase.

Теперь, чтобы создать учетную запись пользователя, вы должны использовать 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(); 
         } 



         // ... 
        } 
       }); 

    } 

Точка, в которой вы должны беспокоиться (на самом деле нет):

Администратор должен только быть в состоянии создать новые учетные записи пользователей. Но вышеупомянутые решения позволяют всем аутентифицированным пользователям создавать новую учетную запись пользователя.

Чтобы решить эту проблему, вы можете обратиться за помощью к своей базе данных базы данных firebase. Просто добавьте ключ, например «is_user_admin», и установите значение как true с самой консоли. Вам просто нужно проверить пользователя, прежде чем кто-то попытается создать новую учетную запись пользователя. И используя этот подход, вы можете установить свой собственный администратор.

На данный момент, я не думаю, что есть firebase-admin SDK для android. Таким образом, можно использовать вышеупомянутый подход.

+0

Я ценю вас, но это не решает мою проблему, это приведет к выходу пользователя из системы, и им нужно будет снова войти в систему в качестве администратор, я хочу просто войти в систему как пользователь admin и создать новый AC, пользователь admin может создавать много учетных записей, поэтому выходить из системы и обратно после каждого из них нецелесообразно. – RoRo88

+0

@ RoRo88: Обновлен мой ответ после его тестирования. Теперь это решит вашу проблему –

 Смежные вопросы

  • Нет связанных вопросов^_^