【问题标题】:Why FirebaseAuth.getInstance().getCurrentUser() is returning null value in android为什么 FirebaseAuth.getInstance().getCurrentUser() 在 android 中返回空值
【发布时间】:2017-12-14 01:43:41
【问题描述】:

我关注Code for sending images using firebase

我已经配置了 firebase 存储 url、数据库 url、数据库规则(true)、sha1 将 google-services.json 放在 app 文件夹中,但是当我调试代码时,它(用户)显示空值 FirebaseUser user = firebaseAuth.getCurrentUser(); .我的代码如下:

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

import butterknife.Bind;
import butterknife.ButterKnife;

public class LoginActivity
    extends AppCompatActivity
    implements FirebaseAuth.AuthStateListener
{

    @Bind( R.id.login_button )
    Button loginButton;

    FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();

    @Override
    protected void onCreate( @Nullable Bundle savedInstanceState )
    {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.activity_login );
        ButterKnife.bind( this );
    }

    @Override
    public void onStart()
    {
        super.onStart();
        firebaseAuth.addAuthStateListener( this );
        verifyCurrentUserAndStartMainActivityIfLoggedIn();
    }

    @Override
    public void onStop()
    {
        super.onStop();
        firebaseAuth.removeAuthStateListener( this );
    }

    public void onLoginClicked( View view )
    {
        loginButton.setEnabled( false );
        firebaseAuth.signInAnonymously();
    }

    @Override
    public void onAuthStateChanged( @NonNull FirebaseAuth firebaseAuth )
    {
        verifyCurrentUserAndStartMainActivityIfLoggedIn();
    }

    private void verifyCurrentUserAndStartMainActivityIfLoggedIn()
    {
        FirebaseUser user = firebaseAuth.getCurrentUser();

        if ( user != null )  //HERE I AM GETTING "user=null" ??
        {

            startActivity( new Intent( this, MainActivity.class ) );
            Toast.makeText(this,"Login success",Toast.LENGTH_LONG).show();
            finish();
        }
        else
        {
            loginButton.setEnabled( true );
        }
    }

}

成功登录后,当(用户!=null)下一个活动显示现在下一个活动的示例网址是

//    StorageReference storageRef = storage.getReferenceFromUrl( "gs://funchat-ef3ed.appspot.com" );

我在 firebase 中创建了新的存储,获取的 url 是:

 StorageReference storageRef = storage.getReferenceFromUrl( "gs://fir-imagesending-1a8c1.appspot.com");

当我使用上面的 url 应用程序崩溃。代码如下:

public class MainActivity extends AppCompatActivity
{

    static final int REQUEST_IMAGE_CAPTURE = 1;

    FirebaseDatabase database = FirebaseDatabase.getInstance();

    FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();

    DatabaseReference databaseReference = database.getReference( "messages" );

    FirebaseStorage storage = FirebaseStorage.getInstance();

//    StorageReference storageRef = storage.getReferenceFromUrl( "gs://funchat-ef3ed.appspot.com" );
    StorageReference storageRef = storage.getReferenceFromUrl( "gs://fir-imagesending-1a8c1.appspot.com");

我找不到我失踪的地方?

【问题讨论】:

  • 您是否在 Firebase 控制台中启用了匿名登录?
  • 如果是,请使用signInAnonymously().addOnCompleteListener...,以便在回调中看到错误
  • @VizGhar 我已启用从火力基地匿名登录。

标签: android firebase firebase-authentication firebase-storage


【解决方案1】:

您的代码似乎与官方firebase documentation 相差甚远

  1. 确保您在 Firebase 控制台中启用了匿名登录
  2. 通过回调mAuth.signInAnonymously().addOnCompleteListener匿名登录
  3. onComplete() 中观察Task.isSuccessful() 是否为真,如果不是,task.getException() 返回什么。
  4. 并始终关注官方文档,而不仅仅是您在 github 上找到的人

如果你真的想知道为什么你的FirebaseUsernull,那么请阅读firebase docs

如果您发布异常,我可以帮助您。

【讨论】:

    【解决方案2】:

    如果你没有,你必须允许匿名登录,然后signInAnonymously()... 或者您可以使用firebase提供的google登录进行用户登录(首先允许用户在firebase控制台中使用google登录),然后将所有实例存储为单例类。 在安全性高的情况下很容易做到

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2020-07-31
      • 2018-02-01
      • 2014-02-24
      • 1970-01-01
      相关资源
      最近更新 更多