FirebaseInstanceId: Token retrieval failed: SERVICE_NOT_AVAILABLE
FirebaseInstanceId: Token retrieval failed: SERVICE_NOT_AVAILABLE
我正在制作一个可以在按钮点击时写入Firebase数据库的应用程序。\n该应用程序在模拟器上运行正常,但在我的物理设备上却无法工作。\n该应用程序上周还正常工作,但今天开始出错。\n以下是主活动的代码:\n
public class MainActivity extends AppCompatActivity { private Firebase fled1; Button on; Button off; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); on= findViewById(R.id.on); off= findViewById(R.id.off); on.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { DatabaseReference fled1 = FirebaseDatabase.getInstance().getReferenceFromUrl("https://testproject-tb.firebaseio.com/"); DatabaseReference fled1Child = fled1.child("Button1"); fled1Child.setValue("1"); } }); off.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { DatabaseReference fled1 = FirebaseDatabase.getInstance().getReferenceFromUrl("https://testproject-tb.firebaseio.com/"); DatabaseReference fled1Child = fled1.child("Button1"); fled1Child.setValue("0"); } }); } }
\n这是我的清单文件,我已添加了所有所需的权限:\n
\n这是构建Gradle文件:\n
apply plugin: 'com.android.application' android { compileSdkVersion 28 defaultConfig { applicationId "com.example.lalitahuja.iotbutton" minSdkVersion 15 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) //noinspection GradleCompatible implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'com.google.firebase:firebase-core:16.0.8' implementation 'com.google.firebase:firebase-database:16.1.0' implementation 'com.crashlytics.sdk.android:crashlytics:2.9.7' implementation 'com.google.firebase:firebase-auth:16.2.0' implementation 'com.firebase:firebase-client-android:2.5.2' } apply plugin: 'com.google.gms.google-services'
\n我收到的错误信息是:\nE/FirebaseInstanceId: Token retrieval failed: SERVICE_NOT_AVAILABLE\n编辑:我尝试了互联网上的解决方案,但没有一个有效。
解决 FirebaseInstanceId: Token retrieval failed: SERVICE_NOT_AVAILABLE 问题的方法
当在Android设备上运行应用程序时,如果遇到FirebaseInstanceId: Token retrieval failed: SERVICE_NOT_AVAILABLE错误,可以尝试以下解决方法:
1. 删除现有的应用程序,然后重新在Android设备上运行该应用程序。
这是最简单的解决方法,有时重新安装应用程序可以解决该问题。通过删除并重新安装应用程序,可以重新初始化Firebase服务并重新获取令牌,从而解决SERVICE_NOT_AVAILABLE错误。
希望这些解决方法可以帮助你解决FirebaseInstanceId: Token retrieval failed: SERVICE_NOT_AVAILABLE问题。
FirebaseInstanceId: Token retrieval failed: SERVICE_NOT_AVAILABLE这个问题的出现原因是我之前遇到的一个问题,让我来列举一下为什么会出现这个问题以及我是如何解决的。
我之前已经在一个项目中添加了一个应用程序(称为app1)。现在,在对该应用程序进行清理时,我不想删除这个应用程序,所以我在同一个项目中添加了另一个具有不同包名的应用程序(称为newAPP)。
问题是,由于我将旧的google-services.json文件(用于app1)复制到了新的Android应用程序中,所以出现了这个问题。这是一个错误。
一旦我在Firebase控制台中添加了newAPP,并在newAPP的代码库中下载了google-services.json文件,我仍然会收到这个错误。
我之所以出现这个错误,是因为构建文件(由Android Studio自动生成)仍然具有旧的应用程序ID和客户端ID等。
为了解决这个问题,我需要执行以下步骤:
- 清理项目(在Build选项卡下)
- 重新构建项目(在Build选项卡下)
- 重新创建模拟器(使用AVD)
请确保将“app\build\generated\res\google-services\debug\values\values.xml”(由Android Studio构建生成)中的应用程序ID与Firebase控制台上对应的应用程序ID匹配。祝好运!