我无法解决调用虚拟方法的问题';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