Понимание функции createUser для firebase (в частности, библиотеки Android)

Поэтому у меня есть следующий код, который я получил из документации firebase (которую я уже реализовал в своем приложении, и он работает нормально):

Firebase ref = new Firebase("https://myapp.firebaseio.com"); ref.createUser("bobtony@firebase.com", "correcthorsebatterystaple", new Firebase.ValueResultHandler<Map<String, Object>>() { @Override public void onSuccess(Map<String, Object> result) { System.out.println("Successfully created user account with uid: " + result.get("uid")); } @Override public void onError(FirebaseError firebaseError) { // there was an error } }); 

После создания пользователя он печатает на консоли свой uid. Однако, когда я вхожу в мой myapp.firebaseio.com, там ничего нет. Поэтому у меня есть несколько вопросов:

  1. Где хранит firebase этот новый пользователь?
  2. Как добавить некоторые настраиваемые поля? (Эти функции используют только электронную почту и пароль), т. Е. Имя пользователя

Итак, то, что я пытался сделать, было внутри onSuccess () Я использовал ref.push () некоторые значения для myapp.firebaseio.com, но потом .. как я могу проверить, есть ли пользователь uid, созданный createUser (), тот же Как тот, кого я толкнул? (Идентификаторы различны!)

Надеюсь, мой текст станет понятным, если его не спросят, и я могу попытаться объяснить снова!

Огромное спасибо!

Информация пользователя не сохраняется в базе данных Firebase. Для анонимных пользователей и пользователей OAuth информация не хранится нигде. Информация для пользователей электронной почты + пароль хранится в отдельной базе данных, к которой у вас нет доступа. Пользователи электронной почты + паролей, конечно, видны на вкладке «Вход в систему» ​​и «Аут» вашей информационной панели, просто не в вашей базе данных.

Если вы хотите хранить информацию о пользователях в своей собственной базе данных Firebase, ее необходимо сохранить там, когда вы создаете или аутентифицируете пользователя. Существует раздел по хранению пользовательских данных в документации Firebase, который показывает, как это сделать.

Одним из преимуществ хранения информации является то, что вы можете точно определить, что такое и что не хранится.

Как сказал Фрэнк; Никакая пользовательская информация автоматически не помещается в firebase сама по созданию пользователя (посмотрите в Login & Auth на боковой панели панели инструментов). Новый пользователь даже не войдет в систему после создания. Это код, который я использую для входа и ввода нового пользователя в firebase при регистрации:

 static void createUser(final String username, final String password) { final Firebase rootRef = new Firebase("YOUR_FIREBASE_URL"); rootRef.createUser( username, password, new Firebase.ResultHandler() { @Override public void onSuccess() { // Great, we have a new user. Now log them in: rootRef.authWithPassword( username, password, new Firebase.AuthResultHandler() { @Override public void onAuthenticated(AuthData authData) { // Great, the new user is logged in. // Create a node under "/users/uid/" and store some initial information, // where "uid" is the newly generated unique id for the user: rootRef.child("users").child(authData.getUid()).child("status").setValue("New User"); } @Override public void onAuthenticationError(FirebaseError error) { // Should hopefully not happen as we just created the user. } } ); } @Override public void onError(FirebaseError firebaseError) { // Couldn't create the user, probably invalid email. // Show the error message and give them another chance. } } ); } 

Это работает для меня до сих пор. Я думаю, что что-то может пойти не так, если соединение прерывается прямо посреди всего (может закончиться с пользователем без его начальной информации). Не зависеть слишком много от того, что он будет установлен …

Может быть, предыдущий был устаревшим как Firebase. Они создают новую концепцию

 //create user auth.createUserWithEmailAndPassword(email, password) .addOnCompleteListener(SignupActivity.this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { Toast.makeText(SignupActivity.this, "createUserWithEmail:onComplete:" + task.isSuccessful(), Toast.LENGTH_SHORT).show(); progressBar.setVisibility(View.GONE); // If sign in fails, display a message to the user. If sign in succeeds // the auth state listener will be notified and logic to handle the // signed in user can be handled in the listener. if (!task.isSuccessful()) { Toast.makeText(SignupActivity.this, "Authentication failed." + task.getException(), Toast.LENGTH_SHORT).show(); } else { Log.e("task",String.valueOf(task)); getUserDetailse(auth); } } }); 

/ Получить пользователя Detailse против FirebaseAuth auth /

  public static void getUserDetailse(FirebaseAuth auth) { // auth.addAuthStateListener(new FirebaseAuth.AuthStateListener() { @Override public void onAuthStateChanged(@NonNull final FirebaseAuth firebaseAuth) { final FirebaseUser user = firebaseAuth.getCurrentUser(); if (user != null) { Log.i("AuthStateChanged", "User is signed in with uid: " + user.getUid()); String name = user.getDisplayName(); String email = user.getEmail(); Uri photoUrl = user.getPhotoUrl(); // The user's ID, unique to the Firebase project. Do NOT use this value to // authenticate with your backend server, if you have one. Use // FirebaseUser.getToken() instead. String uid = user.getUid(); Log.e("user",name+email+photoUrl); } else { Log.i("AuthStateChanged", "No user is signed in."); } } }); } 

Проверить на detailse