How to retrieve current user id and put into a fragment












0















I'm make a account fragment, so I want to retrieve name and image data, but it make my apps force close:



This is my account fragment:






import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.nfc.Tag;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;

import java.util.ArrayList;
import java.util.List;
import java.util.zip.Inflater;

import de.hdodenhof.circleimageview.CircleImageView;

import static android.support.constraint.Constraints.TAG;


/**
* A simple {@link Fragment} subclass.
*/
public class AccountFragment extends Fragment {

private StorageReference storageReference;
private FirebaseAuth firebaseAuth;
private FirebaseFirestore firebaseFirestore;
private Uri mainImageURI = null;
private String user_id;
private TextView accountName;
private CircleImageView accountImage;

public AccountFragment() {
// Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_account, container, false);

getUser();

return view;
}

protected void getUser() {

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();

user_id = firebaseAuth.getCurrentUser().getUid();
accountName = getView().findViewById(R.id.account_name);
accountImage = getView().findViewById(R.id.account_image);

firebaseFirestore.collection("Users").document(user_id).get().addOnCompleteListener(new OnCompleteListener < DocumentSnapshot > () {
@Override
public void onComplete(@NonNull Task < DocumentSnapshot > task) {

if (task.isSuccessful()) {

if (task.getResult().exists()) {

String name = task.getResult().getString("name");
String image = task.getResult().getString("image");

mainImageURI = Uri.parse(image);

accountName.setText(name);

RequestOptions placeholderRequest = new RequestOptions();
placeholderRequest.placeholder(R.drawable.person);

Glide.with(AccountFragment.this).setDefaultRequestOptions(placeholderRequest).load(image).into(accountImage);
}

} else {

String error = task.getException().getMessage();
Toast.makeText(getContext(), "(FIRESTORE Retrieve Error) : " + error, Toast.LENGTH_LONG).show();

}


}
});

}
}





this is my error log




11-13 21:35:56.045 15465-15465/? E/AndroidRuntime: FATAL EXCEPTION:
main
Process: com.example.hpprobook.blogapp, PID: 15465
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hpprobook.blogapp/com.example.hpprobook.blogapp.MainActivity}:
java.lang.NullPointerException: Attempt to invoke virtual method
'com.google.firebase.auth.FirebaseUser
com.google.firebase.auth.FirebaseAuth.getCurrentUser()' on a null
object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2744)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2805)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1538)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:165)
at android.app.ActivityThread.main(ActivityThread.java:6354)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:883)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.auth.FirebaseUser
com.google.firebase.auth.FirebaseAuth.getCurrentUser()' on a null
object reference
at com.example.hpprobook.blogapp.AccountFragment.getUser(AccountFragment.java:68)
at com.example.hpprobook.blogapp.AccountFragment.onCreateView(AccountFragment.java:62)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2346)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1428)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1759)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:792)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2596)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2383)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2338)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2245)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3248)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3200)
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:195)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:597)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
at com.example.hpprobook.blogapp.MainActivity.onStart(MainActivity.java:116)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1249)
at android.app.Activity.performStart(Activity.java:6874)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2805) 
at android.app.ActivityThread.-wrap12(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1538) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:165) 
at android.app.ActivityThread.main(ActivityThread.java:6354) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:883) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)




which is here



getUser();


and here



user_id = firebaseAuth.getCurrentUser().getUid();


this is my mainActivity






import android.content.Intent;
import android.nfc.Tag;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;

public class MainActivity extends AppCompatActivity {

private Toolbar mainToolbar;
private FirebaseAuth mAuth;
private FirebaseFirestore firebaseFirestore;

private String current_user_id;

private FloatingActionButton addPostBtn;

private BottomNavigationView mainbottomNav;

private HomeFragment homeFragment;
private NotificationFragment notificationFragment;
private AccountFragment accountFragment;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mAuth = FirebaseAuth.getInstance();
firebaseFirestore = FirebaseFirestore.getInstance();

mainToolbar = (Toolbar) findViewById(R.id.main_toolbar);
setSupportActionBar(mainToolbar);

getSupportActionBar().setTitle("PhotoGram");

if (mAuth.getCurrentUser() != null) {

mainbottomNav = findViewById(R.id.mainbottom_nav);

// FRAGMENTS
homeFragment = new HomeFragment();
notificationFragment = new NotificationFragment();
accountFragment = new AccountFragment();

initializeFragment();

mainbottomNav.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {

Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.main_container);

switch (item.getItemId()) {

case R.id.bottom_home_btn:

replaceFragment(homeFragment, currentFragment);
return true;

case R.id.bottom_account_btn:

replaceFragment(accountFragment, currentFragment);
return true;

case R.id.bottom_notification_btn:

replaceFragment(notificationFragment, currentFragment);
return true;

default:
return false;


}

}
});


addPostBtn = findViewById(R.id.add_post_btn);
addPostBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

Intent newPostIntent = new Intent(MainActivity.this, NewPostActivity.class);
startActivity(newPostIntent);

}
});
}
}

@Override
protected void onStart() {
super.onStart();

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
if (currentUser == null) {

sendToLogin();

} else {

current_user_id = mAuth.getCurrentUser().getUid();

firebaseFirestore.collection("Users").document(current_user_id).get().addOnCompleteListener(new OnCompleteListener < DocumentSnapshot > () {
@Override
public void onComplete(@NonNull Task < DocumentSnapshot > task) {

if (task.isSuccessful()) {

if (!task.getResult().exists()) {

Intent setupIntent = new Intent(MainActivity.this, SetupActivity.class);
startActivity(setupIntent);
finish();

}

} else {

String errorMessage = task.getException().getMessage();
Toast.makeText(MainActivity.this, "Error : " + errorMessage, Toast.LENGTH_LONG).show();
}
}
});
}
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main_menu, menu);
return true;

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.action_logout_btn:
logOut();
return true;

case R.id.action_setting_btn:

Intent settingsIntent = new Intent(MainActivity.this, SetupActivity.class);
startActivity(settingsIntent);

return true;


default:
return false;


}

}

private void logOut() {


mAuth.signOut();
sendToLogin();
}

private void sendToLogin() {

Intent loginIntent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(loginIntent);
finish();

}

private void initializeFragment() {

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();

fragmentTransaction.add(R.id.main_container, homeFragment);
fragmentTransaction.add(R.id.main_container, notificationFragment);
fragmentTransaction.add(R.id.main_container, accountFragment);

fragmentTransaction.hide(notificationFragment);
fragmentTransaction.hide(accountFragment);

fragmentTransaction.commit();

}

private void replaceFragment(Fragment fragment, Fragment currentFragment) {

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
if (fragment == homeFragment) {

fragmentTransaction.hide(accountFragment);
fragmentTransaction.hide(notificationFragment);

}

if (fragment == accountFragment) {

fragmentTransaction.hide(homeFragment);
fragmentTransaction.hide(notificationFragment);

}

if (fragment == notificationFragment) {

fragmentTransaction.hide(homeFragment);
fragmentTransaction.hide(accountFragment);

}
fragmentTransaction.show(fragment);

//fragmentTransaction.replace(R.id.main_container, fragment);
fragmentTransaction.commit();

}

}





it shows some error too in here



super.onStart();


I'm sorry because my English is not good, and I am also a new user in this forum, I think I need to be guided.










share|improve this question

























  • post whole error log

    – Augusto
    Nov 13 '18 at 14:33











  • sorry i dont understand your word so i copied all of them :) @Augusto

    – Sheva Athalla
    Nov 13 '18 at 14:39











  • Your problem is that the Firebase reference is null: com.google.firebase.auth.FirebaseAuth.getCurrentUser()' on a null object reference. Please, post all code and all class to help us found the problem.

    – Augusto
    Nov 13 '18 at 14:44











  • then what should i do? @Augusto

    – Sheva Athalla
    Nov 13 '18 at 14:54











  • I would suggest moving all the Activity login stuff to onCreate and remove onStart

    – cricket_007
    Nov 13 '18 at 15:15


















0















I'm make a account fragment, so I want to retrieve name and image data, but it make my apps force close:



This is my account fragment:






import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.nfc.Tag;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;

import java.util.ArrayList;
import java.util.List;
import java.util.zip.Inflater;

import de.hdodenhof.circleimageview.CircleImageView;

import static android.support.constraint.Constraints.TAG;


/**
* A simple {@link Fragment} subclass.
*/
public class AccountFragment extends Fragment {

private StorageReference storageReference;
private FirebaseAuth firebaseAuth;
private FirebaseFirestore firebaseFirestore;
private Uri mainImageURI = null;
private String user_id;
private TextView accountName;
private CircleImageView accountImage;

public AccountFragment() {
// Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_account, container, false);

getUser();

return view;
}

protected void getUser() {

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();

user_id = firebaseAuth.getCurrentUser().getUid();
accountName = getView().findViewById(R.id.account_name);
accountImage = getView().findViewById(R.id.account_image);

firebaseFirestore.collection("Users").document(user_id).get().addOnCompleteListener(new OnCompleteListener < DocumentSnapshot > () {
@Override
public void onComplete(@NonNull Task < DocumentSnapshot > task) {

if (task.isSuccessful()) {

if (task.getResult().exists()) {

String name = task.getResult().getString("name");
String image = task.getResult().getString("image");

mainImageURI = Uri.parse(image);

accountName.setText(name);

RequestOptions placeholderRequest = new RequestOptions();
placeholderRequest.placeholder(R.drawable.person);

Glide.with(AccountFragment.this).setDefaultRequestOptions(placeholderRequest).load(image).into(accountImage);
}

} else {

String error = task.getException().getMessage();
Toast.makeText(getContext(), "(FIRESTORE Retrieve Error) : " + error, Toast.LENGTH_LONG).show();

}


}
});

}
}





this is my error log




11-13 21:35:56.045 15465-15465/? E/AndroidRuntime: FATAL EXCEPTION:
main
Process: com.example.hpprobook.blogapp, PID: 15465
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hpprobook.blogapp/com.example.hpprobook.blogapp.MainActivity}:
java.lang.NullPointerException: Attempt to invoke virtual method
'com.google.firebase.auth.FirebaseUser
com.google.firebase.auth.FirebaseAuth.getCurrentUser()' on a null
object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2744)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2805)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1538)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:165)
at android.app.ActivityThread.main(ActivityThread.java:6354)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:883)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.auth.FirebaseUser
com.google.firebase.auth.FirebaseAuth.getCurrentUser()' on a null
object reference
at com.example.hpprobook.blogapp.AccountFragment.getUser(AccountFragment.java:68)
at com.example.hpprobook.blogapp.AccountFragment.onCreateView(AccountFragment.java:62)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2346)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1428)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1759)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:792)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2596)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2383)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2338)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2245)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3248)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3200)
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:195)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:597)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
at com.example.hpprobook.blogapp.MainActivity.onStart(MainActivity.java:116)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1249)
at android.app.Activity.performStart(Activity.java:6874)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2805) 
at android.app.ActivityThread.-wrap12(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1538) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:165) 
at android.app.ActivityThread.main(ActivityThread.java:6354) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:883) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)




which is here



getUser();


and here



user_id = firebaseAuth.getCurrentUser().getUid();


this is my mainActivity






import android.content.Intent;
import android.nfc.Tag;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;

public class MainActivity extends AppCompatActivity {

private Toolbar mainToolbar;
private FirebaseAuth mAuth;
private FirebaseFirestore firebaseFirestore;

private String current_user_id;

private FloatingActionButton addPostBtn;

private BottomNavigationView mainbottomNav;

private HomeFragment homeFragment;
private NotificationFragment notificationFragment;
private AccountFragment accountFragment;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mAuth = FirebaseAuth.getInstance();
firebaseFirestore = FirebaseFirestore.getInstance();

mainToolbar = (Toolbar) findViewById(R.id.main_toolbar);
setSupportActionBar(mainToolbar);

getSupportActionBar().setTitle("PhotoGram");

if (mAuth.getCurrentUser() != null) {

mainbottomNav = findViewById(R.id.mainbottom_nav);

// FRAGMENTS
homeFragment = new HomeFragment();
notificationFragment = new NotificationFragment();
accountFragment = new AccountFragment();

initializeFragment();

mainbottomNav.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {

Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.main_container);

switch (item.getItemId()) {

case R.id.bottom_home_btn:

replaceFragment(homeFragment, currentFragment);
return true;

case R.id.bottom_account_btn:

replaceFragment(accountFragment, currentFragment);
return true;

case R.id.bottom_notification_btn:

replaceFragment(notificationFragment, currentFragment);
return true;

default:
return false;


}

}
});


addPostBtn = findViewById(R.id.add_post_btn);
addPostBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

Intent newPostIntent = new Intent(MainActivity.this, NewPostActivity.class);
startActivity(newPostIntent);

}
});
}
}

@Override
protected void onStart() {
super.onStart();

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
if (currentUser == null) {

sendToLogin();

} else {

current_user_id = mAuth.getCurrentUser().getUid();

firebaseFirestore.collection("Users").document(current_user_id).get().addOnCompleteListener(new OnCompleteListener < DocumentSnapshot > () {
@Override
public void onComplete(@NonNull Task < DocumentSnapshot > task) {

if (task.isSuccessful()) {

if (!task.getResult().exists()) {

Intent setupIntent = new Intent(MainActivity.this, SetupActivity.class);
startActivity(setupIntent);
finish();

}

} else {

String errorMessage = task.getException().getMessage();
Toast.makeText(MainActivity.this, "Error : " + errorMessage, Toast.LENGTH_LONG).show();
}
}
});
}
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main_menu, menu);
return true;

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.action_logout_btn:
logOut();
return true;

case R.id.action_setting_btn:

Intent settingsIntent = new Intent(MainActivity.this, SetupActivity.class);
startActivity(settingsIntent);

return true;


default:
return false;


}

}

private void logOut() {


mAuth.signOut();
sendToLogin();
}

private void sendToLogin() {

Intent loginIntent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(loginIntent);
finish();

}

private void initializeFragment() {

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();

fragmentTransaction.add(R.id.main_container, homeFragment);
fragmentTransaction.add(R.id.main_container, notificationFragment);
fragmentTransaction.add(R.id.main_container, accountFragment);

fragmentTransaction.hide(notificationFragment);
fragmentTransaction.hide(accountFragment);

fragmentTransaction.commit();

}

private void replaceFragment(Fragment fragment, Fragment currentFragment) {

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
if (fragment == homeFragment) {

fragmentTransaction.hide(accountFragment);
fragmentTransaction.hide(notificationFragment);

}

if (fragment == accountFragment) {

fragmentTransaction.hide(homeFragment);
fragmentTransaction.hide(notificationFragment);

}

if (fragment == notificationFragment) {

fragmentTransaction.hide(homeFragment);
fragmentTransaction.hide(accountFragment);

}
fragmentTransaction.show(fragment);

//fragmentTransaction.replace(R.id.main_container, fragment);
fragmentTransaction.commit();

}

}





it shows some error too in here



super.onStart();


I'm sorry because my English is not good, and I am also a new user in this forum, I think I need to be guided.










share|improve this question

























  • post whole error log

    – Augusto
    Nov 13 '18 at 14:33











  • sorry i dont understand your word so i copied all of them :) @Augusto

    – Sheva Athalla
    Nov 13 '18 at 14:39











  • Your problem is that the Firebase reference is null: com.google.firebase.auth.FirebaseAuth.getCurrentUser()' on a null object reference. Please, post all code and all class to help us found the problem.

    – Augusto
    Nov 13 '18 at 14:44











  • then what should i do? @Augusto

    – Sheva Athalla
    Nov 13 '18 at 14:54











  • I would suggest moving all the Activity login stuff to onCreate and remove onStart

    – cricket_007
    Nov 13 '18 at 15:15
















0












0








0








I'm make a account fragment, so I want to retrieve name and image data, but it make my apps force close:



This is my account fragment:






import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.nfc.Tag;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;

import java.util.ArrayList;
import java.util.List;
import java.util.zip.Inflater;

import de.hdodenhof.circleimageview.CircleImageView;

import static android.support.constraint.Constraints.TAG;


/**
* A simple {@link Fragment} subclass.
*/
public class AccountFragment extends Fragment {

private StorageReference storageReference;
private FirebaseAuth firebaseAuth;
private FirebaseFirestore firebaseFirestore;
private Uri mainImageURI = null;
private String user_id;
private TextView accountName;
private CircleImageView accountImage;

public AccountFragment() {
// Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_account, container, false);

getUser();

return view;
}

protected void getUser() {

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();

user_id = firebaseAuth.getCurrentUser().getUid();
accountName = getView().findViewById(R.id.account_name);
accountImage = getView().findViewById(R.id.account_image);

firebaseFirestore.collection("Users").document(user_id).get().addOnCompleteListener(new OnCompleteListener < DocumentSnapshot > () {
@Override
public void onComplete(@NonNull Task < DocumentSnapshot > task) {

if (task.isSuccessful()) {

if (task.getResult().exists()) {

String name = task.getResult().getString("name");
String image = task.getResult().getString("image");

mainImageURI = Uri.parse(image);

accountName.setText(name);

RequestOptions placeholderRequest = new RequestOptions();
placeholderRequest.placeholder(R.drawable.person);

Glide.with(AccountFragment.this).setDefaultRequestOptions(placeholderRequest).load(image).into(accountImage);
}

} else {

String error = task.getException().getMessage();
Toast.makeText(getContext(), "(FIRESTORE Retrieve Error) : " + error, Toast.LENGTH_LONG).show();

}


}
});

}
}





this is my error log




11-13 21:35:56.045 15465-15465/? E/AndroidRuntime: FATAL EXCEPTION:
main
Process: com.example.hpprobook.blogapp, PID: 15465
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hpprobook.blogapp/com.example.hpprobook.blogapp.MainActivity}:
java.lang.NullPointerException: Attempt to invoke virtual method
'com.google.firebase.auth.FirebaseUser
com.google.firebase.auth.FirebaseAuth.getCurrentUser()' on a null
object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2744)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2805)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1538)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:165)
at android.app.ActivityThread.main(ActivityThread.java:6354)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:883)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.auth.FirebaseUser
com.google.firebase.auth.FirebaseAuth.getCurrentUser()' on a null
object reference
at com.example.hpprobook.blogapp.AccountFragment.getUser(AccountFragment.java:68)
at com.example.hpprobook.blogapp.AccountFragment.onCreateView(AccountFragment.java:62)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2346)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1428)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1759)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:792)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2596)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2383)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2338)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2245)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3248)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3200)
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:195)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:597)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
at com.example.hpprobook.blogapp.MainActivity.onStart(MainActivity.java:116)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1249)
at android.app.Activity.performStart(Activity.java:6874)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2805) 
at android.app.ActivityThread.-wrap12(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1538) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:165) 
at android.app.ActivityThread.main(ActivityThread.java:6354) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:883) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)




which is here



getUser();


and here



user_id = firebaseAuth.getCurrentUser().getUid();


this is my mainActivity






import android.content.Intent;
import android.nfc.Tag;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;

public class MainActivity extends AppCompatActivity {

private Toolbar mainToolbar;
private FirebaseAuth mAuth;
private FirebaseFirestore firebaseFirestore;

private String current_user_id;

private FloatingActionButton addPostBtn;

private BottomNavigationView mainbottomNav;

private HomeFragment homeFragment;
private NotificationFragment notificationFragment;
private AccountFragment accountFragment;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mAuth = FirebaseAuth.getInstance();
firebaseFirestore = FirebaseFirestore.getInstance();

mainToolbar = (Toolbar) findViewById(R.id.main_toolbar);
setSupportActionBar(mainToolbar);

getSupportActionBar().setTitle("PhotoGram");

if (mAuth.getCurrentUser() != null) {

mainbottomNav = findViewById(R.id.mainbottom_nav);

// FRAGMENTS
homeFragment = new HomeFragment();
notificationFragment = new NotificationFragment();
accountFragment = new AccountFragment();

initializeFragment();

mainbottomNav.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {

Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.main_container);

switch (item.getItemId()) {

case R.id.bottom_home_btn:

replaceFragment(homeFragment, currentFragment);
return true;

case R.id.bottom_account_btn:

replaceFragment(accountFragment, currentFragment);
return true;

case R.id.bottom_notification_btn:

replaceFragment(notificationFragment, currentFragment);
return true;

default:
return false;


}

}
});


addPostBtn = findViewById(R.id.add_post_btn);
addPostBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

Intent newPostIntent = new Intent(MainActivity.this, NewPostActivity.class);
startActivity(newPostIntent);

}
});
}
}

@Override
protected void onStart() {
super.onStart();

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
if (currentUser == null) {

sendToLogin();

} else {

current_user_id = mAuth.getCurrentUser().getUid();

firebaseFirestore.collection("Users").document(current_user_id).get().addOnCompleteListener(new OnCompleteListener < DocumentSnapshot > () {
@Override
public void onComplete(@NonNull Task < DocumentSnapshot > task) {

if (task.isSuccessful()) {

if (!task.getResult().exists()) {

Intent setupIntent = new Intent(MainActivity.this, SetupActivity.class);
startActivity(setupIntent);
finish();

}

} else {

String errorMessage = task.getException().getMessage();
Toast.makeText(MainActivity.this, "Error : " + errorMessage, Toast.LENGTH_LONG).show();
}
}
});
}
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main_menu, menu);
return true;

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.action_logout_btn:
logOut();
return true;

case R.id.action_setting_btn:

Intent settingsIntent = new Intent(MainActivity.this, SetupActivity.class);
startActivity(settingsIntent);

return true;


default:
return false;


}

}

private void logOut() {


mAuth.signOut();
sendToLogin();
}

private void sendToLogin() {

Intent loginIntent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(loginIntent);
finish();

}

private void initializeFragment() {

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();

fragmentTransaction.add(R.id.main_container, homeFragment);
fragmentTransaction.add(R.id.main_container, notificationFragment);
fragmentTransaction.add(R.id.main_container, accountFragment);

fragmentTransaction.hide(notificationFragment);
fragmentTransaction.hide(accountFragment);

fragmentTransaction.commit();

}

private void replaceFragment(Fragment fragment, Fragment currentFragment) {

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
if (fragment == homeFragment) {

fragmentTransaction.hide(accountFragment);
fragmentTransaction.hide(notificationFragment);

}

if (fragment == accountFragment) {

fragmentTransaction.hide(homeFragment);
fragmentTransaction.hide(notificationFragment);

}

if (fragment == notificationFragment) {

fragmentTransaction.hide(homeFragment);
fragmentTransaction.hide(accountFragment);

}
fragmentTransaction.show(fragment);

//fragmentTransaction.replace(R.id.main_container, fragment);
fragmentTransaction.commit();

}

}





it shows some error too in here



super.onStart();


I'm sorry because my English is not good, and I am also a new user in this forum, I think I need to be guided.










share|improve this question
















I'm make a account fragment, so I want to retrieve name and image data, but it make my apps force close:



This is my account fragment:






import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.nfc.Tag;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;

import java.util.ArrayList;
import java.util.List;
import java.util.zip.Inflater;

import de.hdodenhof.circleimageview.CircleImageView;

import static android.support.constraint.Constraints.TAG;


/**
* A simple {@link Fragment} subclass.
*/
public class AccountFragment extends Fragment {

private StorageReference storageReference;
private FirebaseAuth firebaseAuth;
private FirebaseFirestore firebaseFirestore;
private Uri mainImageURI = null;
private String user_id;
private TextView accountName;
private CircleImageView accountImage;

public AccountFragment() {
// Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_account, container, false);

getUser();

return view;
}

protected void getUser() {

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();

user_id = firebaseAuth.getCurrentUser().getUid();
accountName = getView().findViewById(R.id.account_name);
accountImage = getView().findViewById(R.id.account_image);

firebaseFirestore.collection("Users").document(user_id).get().addOnCompleteListener(new OnCompleteListener < DocumentSnapshot > () {
@Override
public void onComplete(@NonNull Task < DocumentSnapshot > task) {

if (task.isSuccessful()) {

if (task.getResult().exists()) {

String name = task.getResult().getString("name");
String image = task.getResult().getString("image");

mainImageURI = Uri.parse(image);

accountName.setText(name);

RequestOptions placeholderRequest = new RequestOptions();
placeholderRequest.placeholder(R.drawable.person);

Glide.with(AccountFragment.this).setDefaultRequestOptions(placeholderRequest).load(image).into(accountImage);
}

} else {

String error = task.getException().getMessage();
Toast.makeText(getContext(), "(FIRESTORE Retrieve Error) : " + error, Toast.LENGTH_LONG).show();

}


}
});

}
}





this is my error log




11-13 21:35:56.045 15465-15465/? E/AndroidRuntime: FATAL EXCEPTION:
main
Process: com.example.hpprobook.blogapp, PID: 15465
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hpprobook.blogapp/com.example.hpprobook.blogapp.MainActivity}:
java.lang.NullPointerException: Attempt to invoke virtual method
'com.google.firebase.auth.FirebaseUser
com.google.firebase.auth.FirebaseAuth.getCurrentUser()' on a null
object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2744)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2805)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1538)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:165)
at android.app.ActivityThread.main(ActivityThread.java:6354)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:883)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.auth.FirebaseUser
com.google.firebase.auth.FirebaseAuth.getCurrentUser()' on a null
object reference
at com.example.hpprobook.blogapp.AccountFragment.getUser(AccountFragment.java:68)
at com.example.hpprobook.blogapp.AccountFragment.onCreateView(AccountFragment.java:62)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2346)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1428)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1759)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:792)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2596)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2383)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2338)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2245)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3248)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3200)
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:195)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:597)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
at com.example.hpprobook.blogapp.MainActivity.onStart(MainActivity.java:116)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1249)
at android.app.Activity.performStart(Activity.java:6874)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2805) 
at android.app.ActivityThread.-wrap12(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1538) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:165) 
at android.app.ActivityThread.main(ActivityThread.java:6354) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:883) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)




which is here



getUser();


and here



user_id = firebaseAuth.getCurrentUser().getUid();


this is my mainActivity






import android.content.Intent;
import android.nfc.Tag;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;

public class MainActivity extends AppCompatActivity {

private Toolbar mainToolbar;
private FirebaseAuth mAuth;
private FirebaseFirestore firebaseFirestore;

private String current_user_id;

private FloatingActionButton addPostBtn;

private BottomNavigationView mainbottomNav;

private HomeFragment homeFragment;
private NotificationFragment notificationFragment;
private AccountFragment accountFragment;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mAuth = FirebaseAuth.getInstance();
firebaseFirestore = FirebaseFirestore.getInstance();

mainToolbar = (Toolbar) findViewById(R.id.main_toolbar);
setSupportActionBar(mainToolbar);

getSupportActionBar().setTitle("PhotoGram");

if (mAuth.getCurrentUser() != null) {

mainbottomNav = findViewById(R.id.mainbottom_nav);

// FRAGMENTS
homeFragment = new HomeFragment();
notificationFragment = new NotificationFragment();
accountFragment = new AccountFragment();

initializeFragment();

mainbottomNav.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {

Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.main_container);

switch (item.getItemId()) {

case R.id.bottom_home_btn:

replaceFragment(homeFragment, currentFragment);
return true;

case R.id.bottom_account_btn:

replaceFragment(accountFragment, currentFragment);
return true;

case R.id.bottom_notification_btn:

replaceFragment(notificationFragment, currentFragment);
return true;

default:
return false;


}

}
});


addPostBtn = findViewById(R.id.add_post_btn);
addPostBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

Intent newPostIntent = new Intent(MainActivity.this, NewPostActivity.class);
startActivity(newPostIntent);

}
});
}
}

@Override
protected void onStart() {
super.onStart();

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
if (currentUser == null) {

sendToLogin();

} else {

current_user_id = mAuth.getCurrentUser().getUid();

firebaseFirestore.collection("Users").document(current_user_id).get().addOnCompleteListener(new OnCompleteListener < DocumentSnapshot > () {
@Override
public void onComplete(@NonNull Task < DocumentSnapshot > task) {

if (task.isSuccessful()) {

if (!task.getResult().exists()) {

Intent setupIntent = new Intent(MainActivity.this, SetupActivity.class);
startActivity(setupIntent);
finish();

}

} else {

String errorMessage = task.getException().getMessage();
Toast.makeText(MainActivity.this, "Error : " + errorMessage, Toast.LENGTH_LONG).show();
}
}
});
}
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main_menu, menu);
return true;

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.action_logout_btn:
logOut();
return true;

case R.id.action_setting_btn:

Intent settingsIntent = new Intent(MainActivity.this, SetupActivity.class);
startActivity(settingsIntent);

return true;


default:
return false;


}

}

private void logOut() {


mAuth.signOut();
sendToLogin();
}

private void sendToLogin() {

Intent loginIntent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(loginIntent);
finish();

}

private void initializeFragment() {

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();

fragmentTransaction.add(R.id.main_container, homeFragment);
fragmentTransaction.add(R.id.main_container, notificationFragment);
fragmentTransaction.add(R.id.main_container, accountFragment);

fragmentTransaction.hide(notificationFragment);
fragmentTransaction.hide(accountFragment);

fragmentTransaction.commit();

}

private void replaceFragment(Fragment fragment, Fragment currentFragment) {

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
if (fragment == homeFragment) {

fragmentTransaction.hide(accountFragment);
fragmentTransaction.hide(notificationFragment);

}

if (fragment == accountFragment) {

fragmentTransaction.hide(homeFragment);
fragmentTransaction.hide(notificationFragment);

}

if (fragment == notificationFragment) {

fragmentTransaction.hide(homeFragment);
fragmentTransaction.hide(accountFragment);

}
fragmentTransaction.show(fragment);

//fragmentTransaction.replace(R.id.main_container, fragment);
fragmentTransaction.commit();

}

}





it shows some error too in here



super.onStart();


I'm sorry because my English is not good, and I am also a new user in this forum, I think I need to be guided.






import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.nfc.Tag;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;

import java.util.ArrayList;
import java.util.List;
import java.util.zip.Inflater;

import de.hdodenhof.circleimageview.CircleImageView;

import static android.support.constraint.Constraints.TAG;


/**
* A simple {@link Fragment} subclass.
*/
public class AccountFragment extends Fragment {

private StorageReference storageReference;
private FirebaseAuth firebaseAuth;
private FirebaseFirestore firebaseFirestore;
private Uri mainImageURI = null;
private String user_id;
private TextView accountName;
private CircleImageView accountImage;

public AccountFragment() {
// Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_account, container, false);

getUser();

return view;
}

protected void getUser() {

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();

user_id = firebaseAuth.getCurrentUser().getUid();
accountName = getView().findViewById(R.id.account_name);
accountImage = getView().findViewById(R.id.account_image);

firebaseFirestore.collection("Users").document(user_id).get().addOnCompleteListener(new OnCompleteListener < DocumentSnapshot > () {
@Override
public void onComplete(@NonNull Task < DocumentSnapshot > task) {

if (task.isSuccessful()) {

if (task.getResult().exists()) {

String name = task.getResult().getString("name");
String image = task.getResult().getString("image");

mainImageURI = Uri.parse(image);

accountName.setText(name);

RequestOptions placeholderRequest = new RequestOptions();
placeholderRequest.placeholder(R.drawable.person);

Glide.with(AccountFragment.this).setDefaultRequestOptions(placeholderRequest).load(image).into(accountImage);
}

} else {

String error = task.getException().getMessage();
Toast.makeText(getContext(), "(FIRESTORE Retrieve Error) : " + error, Toast.LENGTH_LONG).show();

}


}
});

}
}





import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.nfc.Tag;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;

import java.util.ArrayList;
import java.util.List;
import java.util.zip.Inflater;

import de.hdodenhof.circleimageview.CircleImageView;

import static android.support.constraint.Constraints.TAG;


/**
* A simple {@link Fragment} subclass.
*/
public class AccountFragment extends Fragment {

private StorageReference storageReference;
private FirebaseAuth firebaseAuth;
private FirebaseFirestore firebaseFirestore;
private Uri mainImageURI = null;
private String user_id;
private TextView accountName;
private CircleImageView accountImage;

public AccountFragment() {
// Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_account, container, false);

getUser();

return view;
}

protected void getUser() {

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();

user_id = firebaseAuth.getCurrentUser().getUid();
accountName = getView().findViewById(R.id.account_name);
accountImage = getView().findViewById(R.id.account_image);

firebaseFirestore.collection("Users").document(user_id).get().addOnCompleteListener(new OnCompleteListener < DocumentSnapshot > () {
@Override
public void onComplete(@NonNull Task < DocumentSnapshot > task) {

if (task.isSuccessful()) {

if (task.getResult().exists()) {

String name = task.getResult().getString("name");
String image = task.getResult().getString("image");

mainImageURI = Uri.parse(image);

accountName.setText(name);

RequestOptions placeholderRequest = new RequestOptions();
placeholderRequest.placeholder(R.drawable.person);

Glide.with(AccountFragment.this).setDefaultRequestOptions(placeholderRequest).load(image).into(accountImage);
}

} else {

String error = task.getException().getMessage();
Toast.makeText(getContext(), "(FIRESTORE Retrieve Error) : " + error, Toast.LENGTH_LONG).show();

}


}
});

}
}





import android.content.Intent;
import android.nfc.Tag;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;

public class MainActivity extends AppCompatActivity {

private Toolbar mainToolbar;
private FirebaseAuth mAuth;
private FirebaseFirestore firebaseFirestore;

private String current_user_id;

private FloatingActionButton addPostBtn;

private BottomNavigationView mainbottomNav;

private HomeFragment homeFragment;
private NotificationFragment notificationFragment;
private AccountFragment accountFragment;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mAuth = FirebaseAuth.getInstance();
firebaseFirestore = FirebaseFirestore.getInstance();

mainToolbar = (Toolbar) findViewById(R.id.main_toolbar);
setSupportActionBar(mainToolbar);

getSupportActionBar().setTitle("PhotoGram");

if (mAuth.getCurrentUser() != null) {

mainbottomNav = findViewById(R.id.mainbottom_nav);

// FRAGMENTS
homeFragment = new HomeFragment();
notificationFragment = new NotificationFragment();
accountFragment = new AccountFragment();

initializeFragment();

mainbottomNav.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {

Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.main_container);

switch (item.getItemId()) {

case R.id.bottom_home_btn:

replaceFragment(homeFragment, currentFragment);
return true;

case R.id.bottom_account_btn:

replaceFragment(accountFragment, currentFragment);
return true;

case R.id.bottom_notification_btn:

replaceFragment(notificationFragment, currentFragment);
return true;

default:
return false;


}

}
});


addPostBtn = findViewById(R.id.add_post_btn);
addPostBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

Intent newPostIntent = new Intent(MainActivity.this, NewPostActivity.class);
startActivity(newPostIntent);

}
});
}
}

@Override
protected void onStart() {
super.onStart();

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
if (currentUser == null) {

sendToLogin();

} else {

current_user_id = mAuth.getCurrentUser().getUid();

firebaseFirestore.collection("Users").document(current_user_id).get().addOnCompleteListener(new OnCompleteListener < DocumentSnapshot > () {
@Override
public void onComplete(@NonNull Task < DocumentSnapshot > task) {

if (task.isSuccessful()) {

if (!task.getResult().exists()) {

Intent setupIntent = new Intent(MainActivity.this, SetupActivity.class);
startActivity(setupIntent);
finish();

}

} else {

String errorMessage = task.getException().getMessage();
Toast.makeText(MainActivity.this, "Error : " + errorMessage, Toast.LENGTH_LONG).show();
}
}
});
}
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main_menu, menu);
return true;

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.action_logout_btn:
logOut();
return true;

case R.id.action_setting_btn:

Intent settingsIntent = new Intent(MainActivity.this, SetupActivity.class);
startActivity(settingsIntent);

return true;


default:
return false;


}

}

private void logOut() {


mAuth.signOut();
sendToLogin();
}

private void sendToLogin() {

Intent loginIntent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(loginIntent);
finish();

}

private void initializeFragment() {

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();

fragmentTransaction.add(R.id.main_container, homeFragment);
fragmentTransaction.add(R.id.main_container, notificationFragment);
fragmentTransaction.add(R.id.main_container, accountFragment);

fragmentTransaction.hide(notificationFragment);
fragmentTransaction.hide(accountFragment);

fragmentTransaction.commit();

}

private void replaceFragment(Fragment fragment, Fragment currentFragment) {

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
if (fragment == homeFragment) {

fragmentTransaction.hide(accountFragment);
fragmentTransaction.hide(notificationFragment);

}

if (fragment == accountFragment) {

fragmentTransaction.hide(homeFragment);
fragmentTransaction.hide(notificationFragment);

}

if (fragment == notificationFragment) {

fragmentTransaction.hide(homeFragment);
fragmentTransaction.hide(accountFragment);

}
fragmentTransaction.show(fragment);

//fragmentTransaction.replace(R.id.main_container, fragment);
fragmentTransaction.commit();

}

}





import android.content.Intent;
import android.nfc.Tag;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;

public class MainActivity extends AppCompatActivity {

private Toolbar mainToolbar;
private FirebaseAuth mAuth;
private FirebaseFirestore firebaseFirestore;

private String current_user_id;

private FloatingActionButton addPostBtn;

private BottomNavigationView mainbottomNav;

private HomeFragment homeFragment;
private NotificationFragment notificationFragment;
private AccountFragment accountFragment;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mAuth = FirebaseAuth.getInstance();
firebaseFirestore = FirebaseFirestore.getInstance();

mainToolbar = (Toolbar) findViewById(R.id.main_toolbar);
setSupportActionBar(mainToolbar);

getSupportActionBar().setTitle("PhotoGram");

if (mAuth.getCurrentUser() != null) {

mainbottomNav = findViewById(R.id.mainbottom_nav);

// FRAGMENTS
homeFragment = new HomeFragment();
notificationFragment = new NotificationFragment();
accountFragment = new AccountFragment();

initializeFragment();

mainbottomNav.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {

Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.main_container);

switch (item.getItemId()) {

case R.id.bottom_home_btn:

replaceFragment(homeFragment, currentFragment);
return true;

case R.id.bottom_account_btn:

replaceFragment(accountFragment, currentFragment);
return true;

case R.id.bottom_notification_btn:

replaceFragment(notificationFragment, currentFragment);
return true;

default:
return false;


}

}
});


addPostBtn = findViewById(R.id.add_post_btn);
addPostBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

Intent newPostIntent = new Intent(MainActivity.this, NewPostActivity.class);
startActivity(newPostIntent);

}
});
}
}

@Override
protected void onStart() {
super.onStart();

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
if (currentUser == null) {

sendToLogin();

} else {

current_user_id = mAuth.getCurrentUser().getUid();

firebaseFirestore.collection("Users").document(current_user_id).get().addOnCompleteListener(new OnCompleteListener < DocumentSnapshot > () {
@Override
public void onComplete(@NonNull Task < DocumentSnapshot > task) {

if (task.isSuccessful()) {

if (!task.getResult().exists()) {

Intent setupIntent = new Intent(MainActivity.this, SetupActivity.class);
startActivity(setupIntent);
finish();

}

} else {

String errorMessage = task.getException().getMessage();
Toast.makeText(MainActivity.this, "Error : " + errorMessage, Toast.LENGTH_LONG).show();
}
}
});
}
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main_menu, menu);
return true;

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.action_logout_btn:
logOut();
return true;

case R.id.action_setting_btn:

Intent settingsIntent = new Intent(MainActivity.this, SetupActivity.class);
startActivity(settingsIntent);

return true;


default:
return false;


}

}

private void logOut() {


mAuth.signOut();
sendToLogin();
}

private void sendToLogin() {

Intent loginIntent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(loginIntent);
finish();

}

private void initializeFragment() {

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();

fragmentTransaction.add(R.id.main_container, homeFragment);
fragmentTransaction.add(R.id.main_container, notificationFragment);
fragmentTransaction.add(R.id.main_container, accountFragment);

fragmentTransaction.hide(notificationFragment);
fragmentTransaction.hide(accountFragment);

fragmentTransaction.commit();

}

private void replaceFragment(Fragment fragment, Fragment currentFragment) {

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
if (fragment == homeFragment) {

fragmentTransaction.hide(accountFragment);
fragmentTransaction.hide(notificationFragment);

}

if (fragment == accountFragment) {

fragmentTransaction.hide(homeFragment);
fragmentTransaction.hide(notificationFragment);

}

if (fragment == notificationFragment) {

fragmentTransaction.hide(homeFragment);
fragmentTransaction.hide(accountFragment);

}
fragmentTransaction.show(fragment);

//fragmentTransaction.replace(R.id.main_container, fragment);
fragmentTransaction.commit();

}

}






java android firebase nullpointerexception firebase-authentication






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 13 '18 at 16:51









Alex Mamo

40k72759




40k72759










asked Nov 13 '18 at 14:21









Sheva AthallaSheva Athalla

61




61













  • post whole error log

    – Augusto
    Nov 13 '18 at 14:33











  • sorry i dont understand your word so i copied all of them :) @Augusto

    – Sheva Athalla
    Nov 13 '18 at 14:39











  • Your problem is that the Firebase reference is null: com.google.firebase.auth.FirebaseAuth.getCurrentUser()' on a null object reference. Please, post all code and all class to help us found the problem.

    – Augusto
    Nov 13 '18 at 14:44











  • then what should i do? @Augusto

    – Sheva Athalla
    Nov 13 '18 at 14:54











  • I would suggest moving all the Activity login stuff to onCreate and remove onStart

    – cricket_007
    Nov 13 '18 at 15:15





















  • post whole error log

    – Augusto
    Nov 13 '18 at 14:33











  • sorry i dont understand your word so i copied all of them :) @Augusto

    – Sheva Athalla
    Nov 13 '18 at 14:39











  • Your problem is that the Firebase reference is null: com.google.firebase.auth.FirebaseAuth.getCurrentUser()' on a null object reference. Please, post all code and all class to help us found the problem.

    – Augusto
    Nov 13 '18 at 14:44











  • then what should i do? @Augusto

    – Sheva Athalla
    Nov 13 '18 at 14:54











  • I would suggest moving all the Activity login stuff to onCreate and remove onStart

    – cricket_007
    Nov 13 '18 at 15:15



















post whole error log

– Augusto
Nov 13 '18 at 14:33





post whole error log

– Augusto
Nov 13 '18 at 14:33













sorry i dont understand your word so i copied all of them :) @Augusto

– Sheva Athalla
Nov 13 '18 at 14:39





sorry i dont understand your word so i copied all of them :) @Augusto

– Sheva Athalla
Nov 13 '18 at 14:39













Your problem is that the Firebase reference is null: com.google.firebase.auth.FirebaseAuth.getCurrentUser()' on a null object reference. Please, post all code and all class to help us found the problem.

– Augusto
Nov 13 '18 at 14:44





Your problem is that the Firebase reference is null: com.google.firebase.auth.FirebaseAuth.getCurrentUser()' on a null object reference. Please, post all code and all class to help us found the problem.

– Augusto
Nov 13 '18 at 14:44













then what should i do? @Augusto

– Sheva Athalla
Nov 13 '18 at 14:54





then what should i do? @Augusto

– Sheva Athalla
Nov 13 '18 at 14:54













I would suggest moving all the Activity login stuff to onCreate and remove onStart

– cricket_007
Nov 13 '18 at 15:15







I would suggest moving all the Activity login stuff to onCreate and remove onStart

– cricket_007
Nov 13 '18 at 15:15














2 Answers
2






active

oldest

votes


















1














Apparentely you is using the not instancied variable to get data.
Try change the to it:



protected void getUser() {

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();

user_id = currentUser.getUid();
....
}





share|improve this answer


























  • The error is saying FirebaseAuth.getInstance is returning null, though

    – cricket_007
    Nov 13 '18 at 15:15






  • 1





    There is no way to achieve this, since FirebaseUser class doesn't have a getCurrentUser() method.

    – Alex Mamo
    Nov 13 '18 at 16:22



















0














Tol get the uid of the user, simply use the following lines of code:



FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
if (firebaseUser != null) {
String uid = firebaseUser.getUid(); //Do what you need to do with your uid
}


It's also important to check the firebaseUser for nullity.






share|improve this answer
























  • Hi Sheva! Have you tried my solution above, does it work?

    – Alex Mamo
    Nov 14 '18 at 8:44











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53283129%2fhow-to-retrieve-current-user-id-and-put-into-a-fragment%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









1














Apparentely you is using the not instancied variable to get data.
Try change the to it:



protected void getUser() {

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();

user_id = currentUser.getUid();
....
}





share|improve this answer


























  • The error is saying FirebaseAuth.getInstance is returning null, though

    – cricket_007
    Nov 13 '18 at 15:15






  • 1





    There is no way to achieve this, since FirebaseUser class doesn't have a getCurrentUser() method.

    – Alex Mamo
    Nov 13 '18 at 16:22
















1














Apparentely you is using the not instancied variable to get data.
Try change the to it:



protected void getUser() {

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();

user_id = currentUser.getUid();
....
}





share|improve this answer


























  • The error is saying FirebaseAuth.getInstance is returning null, though

    – cricket_007
    Nov 13 '18 at 15:15






  • 1





    There is no way to achieve this, since FirebaseUser class doesn't have a getCurrentUser() method.

    – Alex Mamo
    Nov 13 '18 at 16:22














1












1








1







Apparentely you is using the not instancied variable to get data.
Try change the to it:



protected void getUser() {

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();

user_id = currentUser.getUid();
....
}





share|improve this answer















Apparentely you is using the not instancied variable to get data.
Try change the to it:



protected void getUser() {

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();

user_id = currentUser.getUid();
....
}






share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 13 '18 at 16:23

























answered Nov 13 '18 at 15:06









AugustoAugusto

455519




455519













  • The error is saying FirebaseAuth.getInstance is returning null, though

    – cricket_007
    Nov 13 '18 at 15:15






  • 1





    There is no way to achieve this, since FirebaseUser class doesn't have a getCurrentUser() method.

    – Alex Mamo
    Nov 13 '18 at 16:22



















  • The error is saying FirebaseAuth.getInstance is returning null, though

    – cricket_007
    Nov 13 '18 at 15:15






  • 1





    There is no way to achieve this, since FirebaseUser class doesn't have a getCurrentUser() method.

    – Alex Mamo
    Nov 13 '18 at 16:22

















The error is saying FirebaseAuth.getInstance is returning null, though

– cricket_007
Nov 13 '18 at 15:15





The error is saying FirebaseAuth.getInstance is returning null, though

– cricket_007
Nov 13 '18 at 15:15




1




1





There is no way to achieve this, since FirebaseUser class doesn't have a getCurrentUser() method.

– Alex Mamo
Nov 13 '18 at 16:22





There is no way to achieve this, since FirebaseUser class doesn't have a getCurrentUser() method.

– Alex Mamo
Nov 13 '18 at 16:22













0














Tol get the uid of the user, simply use the following lines of code:



FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
if (firebaseUser != null) {
String uid = firebaseUser.getUid(); //Do what you need to do with your uid
}


It's also important to check the firebaseUser for nullity.






share|improve this answer
























  • Hi Sheva! Have you tried my solution above, does it work?

    – Alex Mamo
    Nov 14 '18 at 8:44
















0














Tol get the uid of the user, simply use the following lines of code:



FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
if (firebaseUser != null) {
String uid = firebaseUser.getUid(); //Do what you need to do with your uid
}


It's also important to check the firebaseUser for nullity.






share|improve this answer
























  • Hi Sheva! Have you tried my solution above, does it work?

    – Alex Mamo
    Nov 14 '18 at 8:44














0












0








0







Tol get the uid of the user, simply use the following lines of code:



FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
if (firebaseUser != null) {
String uid = firebaseUser.getUid(); //Do what you need to do with your uid
}


It's also important to check the firebaseUser for nullity.






share|improve this answer













Tol get the uid of the user, simply use the following lines of code:



FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
if (firebaseUser != null) {
String uid = firebaseUser.getUid(); //Do what you need to do with your uid
}


It's also important to check the firebaseUser for nullity.







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 13 '18 at 16:21









Alex MamoAlex Mamo

40k72759




40k72759













  • Hi Sheva! Have you tried my solution above, does it work?

    – Alex Mamo
    Nov 14 '18 at 8:44



















  • Hi Sheva! Have you tried my solution above, does it work?

    – Alex Mamo
    Nov 14 '18 at 8:44

















Hi Sheva! Have you tried my solution above, does it work?

– Alex Mamo
Nov 14 '18 at 8:44





Hi Sheva! Have you tried my solution above, does it work?

– Alex Mamo
Nov 14 '18 at 8:44


















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53283129%2fhow-to-retrieve-current-user-id-and-put-into-a-fragment%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

List item for chat from Array inside array React Native

Thiostrepton

Caerphilly