Firebase数据库连接失败,因为身份验证凭据无效

时间:2017-07-03 11:56:28

标签: android firebase firebase-realtime-database firebase-authentication

我在Android中使用Firebase数据库向我的用户显示他们的状态,当我的服务启动它连接到数据库并听取更改并在开始时工作正常,电话重启或一段时间后我得到日志如下所述的错误,并且没有与DB的连接。我在S7上测试时遇到这个问题,在S5中我没有遇到这个问题。 我看到,对于这个错误,解决方案是使用监听器FirebaseAuth.AuthStateListener替换FirebaseAuth.getInstance()。getFirebaseUser(),但它没有帮助解决问题。

错误:

  

PersistentConnection:pc_0 - 提供的身份验证凭据   无效。这通常表示您的FirebaseApp实例不是   正确初始化。确保您的google-services.json文件有   正确的firebase_url和api_key。你可以重新下载   来自https://console.firebase.google.com/的google-services.json。

由于

public void listenToDbChanges() {
    mAuthStateListener = new FirebaseAuth.AuthStateListener() {
        @Override
        public void onAuthStateChanged(FirebaseAuth firebaseAuth) {
            Logger.d(TAG, "Auth");
            listenToDbChangesStart(firebaseAuth);
        }
    };
    FirebaseAuth.getInstance().addAuthStateListener(mAuthStateListener);
}

FirebaseAuth.AuthStateListener mAuthStateListener = null;

/**
 * Called when FirebaseUser listener had return the user
 */
private void listenToDbChangesStart(FirebaseAuth firebaseAuth) {
    if (firebaseAuth == null) {
        Logger.e(TAG, "firebaseAuth is null ignore");
        return;
    }
    FirebaseAuth.getInstance().removeAuthStateListener(mAuthStateListener);
    if (isListeningToDb) {
        Logger.d(TAG, "Already listening to db");
        return;
    }
    final FirebaseDatabase database = FirebaseDatabase.getInstance();
    FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();

    DatabaseReference userRef = null;
    if (firebaseUser != null) {

        String path = getPathOfDB(firebaseUser);
        Logger.d(TAG,"Path is:"+path);
        userRef = database.getReference(path);

        if (userRef != null) {
            userRef.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    Logger.d(TAG, "onDataChange");
                    // READ
                    }
          }
  }

0 个答案:

没有答案