Firestore令牌检索失败:INVALID_SENDER

时间:2018-06-22 11:33:47

标签: android firebase google-cloud-firestore

我没有从addOnSuccessListeneraddOnFailureListeneraddOnCompleteListener之类的接口收到任何回调。

依赖项:

        classpath 'com.google.gms:google-services:3.2.1'

        implementation 'com.google.firebase:firebase-firestore:16.0.0'
       // }
        apply plugin: 'com.google.gms.google-services'

代码:

 firestore = FirebaseFirestore.getInstance(); // required for first time 
    FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder()
            .setTimestampsInSnapshotsEnabled(true)
            .build();
    firestore.setFirestoreSettings(settings);

    final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Map<String, Object> user = new HashMap<>();
            user.put("Title", "Ada");
            user.put("category", "Lovelace");
            user.put("id", "123");

            firestore = FirebaseFirestore.getInstance();
            firestore.collection("quotes")
                    .add(user)
                    .addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
                        @Override
                        public void onSuccess(DocumentReference documentReference) {
                            Log.d("quotes", "DocumentSnapshot added with ID: " + documentReference.getId());
                            Snackbar.make(fab, "DocumentSnapshot added with ID: " + documentReference.getId(), Snackbar.LENGTH_INDEFINITE).show();
                        }
                    })
                    .addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            Log.w("quotes", "Error adding document", e);
                            Snackbar.make(fab, "OnFailureListener: " + e, Snackbar.LENGTH_INDEFINITE).show();
                        }
                    })
                    .addOnCompleteListener(new OnCompleteListener<DocumentReference>() {
                        @Override
                        public void onComplete(@NonNull Task<DocumentReference> task) {
                            Snackbar.make(fab, "OnCompleteListener: " + task.isSuccessful(), Snackbar.LENGTH_INDEFINITE).show();

                        }
                    });

        }
    });
  
    
      

LOGCAT

    
  
E/FirebaseInstanceId: Token retrieval failed: INVALID_SENDER
E/FirebaseInstanceId: Token retrieval failed: INVALID_SENDER
E/FirebaseInstanceId: Token retrieval failed: INVALID_SENDER

9 个答案:

答案 0 :(得分:17)

如果您最近更改了google-services.json文件,则只需从android项目中删除build文件夹,然后重新构建您的项目即可。

答案 1 :(得分:2)

我有类似的问题。它与我的代码无关,而是与API密钥无关,请检查该侧的所有内容是否正常运行。 (我的问题是有关Google结算帐户的。)

答案 2 :(得分:1)

要解决此问题,请更改以下代码行:

classpath 'com.google.gms:google-services:3.2.1'

classpath 'com.google.gms:google-services:4.0.1'

implementation 'com.google.firebase:firebase-firestore:16.0.0'

implementation 'com.google.firebase:firebase-firestore:17.0.2'

也不要忘记添加以下强制性的依赖项:

implementation 'com.google.firebase:firebase-core:16.0.1'

此外,如果您需要使用Firebase Messaging,则还应该添加以下依赖项:

implementation 'com.google.firebase:firebase-messaging:17.0.0'

更多信息here

答案 3 :(得分:0)

我知道这很蠢,

Function Get-GraphOneDriveUsageAccountDetail {
    $result = (Invoke-RestMethod `
            -Method get `
            -Uri "https://graph.microsoft.com/beta/reports/getOneDriveUsageAccountDetail(period='D180')?%24format=application%2Fjson&%24top=10000" `
            -ContentType 'application/json' `
            -Headers $script:APIHeader `
            -ErrorAction Stop).value
    return $result
}

我在另一个项目中使用google-services.json。

答案 4 :(得分:0)

很抱歉延迟回复,但您将获得正确的发件人来自firebase。

转到firebase->选择您的项目->项目设置-> Cloud Messaging->发件人ID

您将获得sender_id,将其复制并在您的项目中使用它将解决您的问题。

答案 5 :(得分:0)

您的buildVariant应该与Firebase中的项目相同。检查buildTypes和productFlavors。

答案 6 :(得分:0)

我有同样的问题。

原来是一个团队成员意外删除了Firebase项目。

答案 7 :(得分:-1)

删除项目(App_Folder_Name)/ app /“ build”

删除整个构建文件夹并重新构建它即可使用。如果只有杰森文件是正确的

答案 8 :(得分:-1)

等待 Firebase.initializeApp(

// name: 'DontUseThis',

// Note --^ Gives error of Dublicate App If using only 1 app.

并给出 [firebase_messaging] Failed to get FIS auth token 错误

FIS_AUTH_ERROR。不会重试

E/FirebaseInstanceId(8503):由于硬故障异常,主题同步或令牌检索失败:FIS_AUTH_ERROR。不会重试操作。

***避免使用“名称”参数字段。