Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我无法解决调用虚拟方法的问题';java.lang.String com.google.firebase.auth.FirebaseUser.getUid()';关于空对象引用_Java_Android - Fatal编程技术网

我无法解决调用虚拟方法的问题';java.lang.String com.google.firebase.auth.FirebaseUser.getUid()';关于空对象引用

我无法解决调用虚拟方法的问题';java.lang.String com.google.firebase.auth.FirebaseUser.getUid()';关于空对象引用,java,android,Java,Android,我在我的处理程序上面临上述问题,该处理程序每次都会检查您是否登录,但我面临该问题,我如何解决该问题 伙计们,我已经尝试了几种方法,但我还是遇到了同样的问题,那就是每次启动屏幕都会检查,所以,应用程序正在崩溃 这是我的欢迎屏幕 ```public class WelcomeScreen extends AppCompatActivity { private ImageView logo; private FirebaseAuth firebaseAuth; private

我在我的处理程序上面临上述问题,该处理程序每次都会检查您是否登录,但我面临该问题,我如何解决该问题

伙计们,我已经尝试了几种方法,但我还是遇到了同样的问题,那就是每次启动屏幕都会检查,所以,应用程序正在崩溃

这是我的欢迎屏幕

```public class WelcomeScreen extends AppCompatActivity {

    private ImageView logo;
    private FirebaseAuth firebaseAuth;
    private FirebaseDatabase firebaseDatabase;
    private static int SPLASH_TIME_OUT = 5000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setFullscreen ();
        setContentView (R.layout.welcomescreen);
        firebaseAuth = FirebaseAuth.getInstance ();
        final String user_id = firebaseAuth.getCurrentUser ().getUid ();
         final FirebaseUser firebaseUser = firebaseAuth.getInstance ().getCurrentUser ();
        firebaseDatabase = FirebaseDatabase.getInstance ();
       final DatabaseReference databaseReference = firebaseDatabase.getReference ().child ("Users").child (user_id);





        logo= findViewById (R.id.logoocaap);

        Animation animation = AnimationUtils.loadAnimation (this,R.anim.splashscreen);
        logo.startAnimation (animation);



       new Handler ().postDelayed (new Runnable () {
           @Override
           public void run() {


               //check if there's internet connection


               checkConnection();



               if(firebaseUser != null)
               {

                   databaseReference.addValueEventListener (new ValueEventListener () {
                       @Override
                       public void onDataChange(@NonNull DataSnapshot dataSnapshot) {```

在firebase控制台中为您的测试启用signin方法Enable signinAnanymous

更新如下规则

{
  "rules": {
    ".read": true,
    ".write": true
  }
}
然后使用回调调用
FirebaseAuth.getInstance().signInAnanymous()
,并在成功方法中获取当前用户

例如:

 FirebaseAuth.getInstance ().signInAnonymously().addOnSuccessListener(this, new OnSuccessListener<AuthResult>() {
            @Override
            public void onSuccess(AuthResult authResult) {
                Log.e("TAG", "success sign");
                // do your stuff
            }
        })
                .addOnFailureListener(this, new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception exception) {
                        Log.e("TAG", "failed sign");
                    }
                });
    }
FirebaseAuth.getInstance().signInonymously().addOnSuccessListener(这是新的OnSuccessListener()){
@凌驾
成功时公共无效(AuthResult AuthResult){
Log.e(“标签”、“成功标志”);
//做你的事
}
})
.addOnFailureListener(此,新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常){
Log.e(“标签”、“失败的标志”);
}
});
}

首先检查
FirebaseUser
是否为
null
,然后尝试获取
UID
。检查以下内容:

firebaseAuth = FirebaseAuth.getInstance ();
final FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
String user_id = "";

if(firebaseUser != null)
    user_id = firebaseUser.getUid ();

当前,您尝试在
FirebaseUser
上获取
UID
,它是
null

您必须调用
getCurrentUser()
内部登录方法successwhere brother@RajasekaranM