How to get user uid from firebase on android?
Solution 1
You can use these lines of code to get Current User Uid with Android Firebase Framework
FirebaseUser currentFirebaseUser = FirebaseAuth.getInstance().getCurrentUser() ;
Toast.makeText(this, "" + currentFirebaseUser.getUid(), Toast.LENGTH_SHORT).show();
Solution 2
To get Current User UID, you just need this line of code:
String currentuser = FirebaseAuth.getInstance().getCurrentUser().getUid();
Solution 3
the problem is that in firebase when you create a user it doesn't sign in the user. Here is from the docs:
Creates a new email / password user with the provided credentials. This method does not authenticate the user. After the account is created, the user may be authenticated with authWithPassword(). https://www.firebase.com/docs/web/api/firebase/createuser.html
Firebase ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
ref.authWithPassword(mail, pass, new Firebase.AuthResultHandler() {
@Override
public void onAuthenticated(AuthData authData) {
System.out.println("User ID: " + authData.getUid() + ", Provider: " + authData.getProvider());
}
@Override
public void onAuthenticationError(FirebaseError firebaseError) {
// there was an error
}
});
So once your user is created call the authWithPassword function. Hope it helps!
Solution 4
In your code, your firebaseRef seems to be null and therefore results in null uid
, the recommended way of getting the user id from Firebase is to do below anywhere in your app after user logged-in
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
eagle
Updated on June 09, 2020Comments
-
eagle almost 4 years
I want to save data to firebase. This is my Activity Code :
private Firebase firebaseRef; Firebase.setAndroidContext(this); try { mUserId = firebaseRef.getAuth().getUid(); } catch (Exception e) { // loginWithMailView(); } itemsUrl = Constants.FIREBASE_URL + "/Person/" + mUserId +"/Information/"; //Person + null (?) + the other information
and this is for my button code :
buttonSave = (Button) findViewById(R.id.btnKaydolKayit); buttonSave.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { firebaseRef = new Firebase(Constants.FIREBASE_URL); String name = editTextName.getText().toString().trim(); String surname = editTextSurname.getText().toString().trim(); String gender = final_result.getText().toString(); String mail = editTextMail.getText().toString(); String pass = editTextPass.getText().toString().trim(); String phone = editTextPhone.getText().toString().trim(); String trom = final_resultT.getText().toString(); String bloodGroup = spinnerBlood.getSelectedItem().toString(); String dateBlood = dateTextViewBlood.getText().toString(); String dateTrombo = dateTextViewTrom.getText().toString(); if (pass.isEmpty() || mail.isEmpty()) { AlertDialog.Builder builder = new AlertDialog.Builder(KaydolActivity.this); builder.setMessage(R.string.signup_error_message) .setTitle(R.string.signup_error_title) .setPositiveButton(android.R.string.ok, null); AlertDialog dialog = builder.create(); dialog.show(); } else { firebaseRef.createUser(mail, pass, new Firebase.ResultHandler(){ @Override public void onSuccess() { firebaseRef = new Firebase(Constants.FIREBASE_URL); // firebaseRef.setValue(); AlertDialog.Builder builder = new AlertDialog.Builder(KaydolActivity.this); builder.setMessage("Hesap başarılı bir şekilde oluşturuldu!").setPositiveButton(R.string.login_button_label, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Intent intent = new Intent(KaydolActivity.this, loginWithMail.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); } }); AlertDialog dialog = builder.create(); dialog.show(); } @Override public void onError(FirebaseError firebaseError) { AlertDialog.Builder builder = new AlertDialog.Builder(KaydolActivity.this); builder.setMessage(firebaseError.getMessage()) .setTitle(R.string.signup_error_title) .setPositiveButton(android.R.string.ok, null); AlertDialog dialog = builder.create(); dialog.show(); } }); } new Firebase(itemsUrl).push().child("name").setValue(name); new Firebase(itemsUrl).push().child("surname").setValue(surname); new Firebase(itemsUrl).push().child("gender").setValue(gender); new Firebase(itemsUrl).push().child("mail").setValue(mail); new Firebase(itemsUrl).push().child("pass").setValue(pass); new Firebase(itemsUrl).push().child("phone").setValue(phone); new Firebase(itemsUrl).push().child("trom").setValue(trom); new Firebase(itemsUrl).push().child("bloodGroup").setValue(bloodGroup); new Firebase(itemsUrl).push().child("trom").setValue(trom); new Firebase(itemsUrl).push().child("dateBlood").setValue(dateBlood); new Firebase(itemsUrl).push().child("dateTrombo").setValue(dateTrombo); } });
my source code (for help / for example ) : https://www.sitepoint.com/creating-a-cloud-backend-for-your-android-app-using-firebase/
When I save a data to firebase as the following photo ( Login&Auth )
but mUserId is null. so when I look database mUserid is null ( like a photo )