【问题标题】:com.google.firebase.FirebaseException: An internal error has occurred. [ API key not valid. Please pass a valid API key. ]com.google.firebase.FirebaseException:发生内部错误。 [ API 密钥无效。请传递有效的 API 密钥。 ]
【发布时间】:2019-11-01 04:34:22
【问题描述】:

我删除了旧的 fire-base 项目并创建了一个新项目。 之后我得到了这个错误。

首先错误是 sha 1,这就是我删除旧项目并创建新项目的原因。

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import com.firebase.ui.auth.AuthUI;
import com.google.firebase.auth.FirebaseAuth;

import java.util.Arrays;

public class MainActivity extends AppCompatActivity {public static final int RC_SIGN_IN = 1;


private FirebaseAuth mFirebaseAuth;
private FirebaseAuth.AuthStateListener mAuthStateListener;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mFirebaseAuth = FirebaseAuth.getInstance();

    startActivityForResult(
            // Get an instance of AuthUI based on the default app
            AuthUI.getInstance()
                    .createSignInIntentBuilder()
                    .setAvailableProviders(Arrays.asList(
                            new AuthUI.IdpConfig.EmailBuilder().build(),
                            new AuthUI.IdpConfig.PhoneBuilder().build(),
                            new AuthUI.IdpConfig.GoogleBuilder().build()
                    ))
                    .setIsSmartLockEnabled(!BuildConfig.DEBUG /* credentials */, true /* hints */)
                    .build(),
            RC_SIGN_IN);
 }

}

这是非常简单的代码,没有错误。这是以前的工作。

我认为问题出在技术上。就像在火基地控制台的某个地方。

【问题讨论】:

  • 你改变了你的 google-services.json 吗?
  • 是的,我做到了。但它很小,就像它来自这个 JSON。我下载并替换它不起作用。我用我的项目把它弄沉了,它不起作用。
  • 好吧,我认为您必须启用您在 Firebase 控制台的身份验证部分使用的身份验证提供程序
  • 你能显示整个日志吗?
  • @HarKal 等一下。

标签: android


【解决方案1】:

对我有用的是“构建”->“清理项目”并运行它。

(我还尝试在 Android Studio 上同步 Firebase,重新创建了 google-services.json,但在清理项目之前没有一个对我真正有用)

【讨论】:

  • 你敢面对它。
  • 不不,我已经解决了这个问题。清理项目对我有帮助
  • 做一个干净的构建有时会修复所有问题。谢谢你帮我省了很多麻烦。 :D
  • 帮助我的不仅仅是你的答案,而是许多答案的组合
【解决方案2】:

我也遇到过这个问题。

解决方案: 在项目级别 gradle 更改谷歌服务的版本并同步您的项目并重新安装。

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

【讨论】:

  • 这是正确的解决方案。我在使用 google play 服务版本 4.3.5 时遇到了同样的问题,但是在将 google play 服务版本从 4.3.6 更改为 4.3.0 之后,我的问题得到了解决。非常感谢。
  • 感谢您的解决方案...您保存了整个...此外我还覆盖了 googleServices.json 文件...
  • 非常感谢,您保存了我的最终学位项目。我距离交付还有 2 天的时间,我的一切都很完美,但我登录失败并感到沮丧。非常感谢
  • 非常感谢,伙计,我只是想知道你知道了吗?
【解决方案3】:

与 E.Akio 类似,我也需要清理然后重建。
但是在 VSCode 中,我从命令行中看不到 clean 的菜单选项:

cd 安卓
.\gradlew.bat clean

然后我再次使用 F5 启动应用程序,并且新的 google-services.json 必须包含在构建中,因为错误消失了。

【讨论】:

  • 这是 VSCode 用户的正确解决方案。如果您在 Windows 中:./gradlew.bat clean
【解决方案4】:

您的 Firebase 中的 API 密钥必须与您的 google-services.json 文件的密钥匹配才能解决此问题,请在此处查看图片 check image from android studio

check image from firebase

完成此操作后,转到您的 android studio 点击工具 > AVD Manager > 选择您的模拟器并擦除数据 现在再次运行应用程序

【讨论】:

    【解决方案5】:

    对于安卓: 前往

    cd 安卓

    对于 Windows:

    gradlew.bat 清理

    然后关闭模拟器、代码编辑器等所有应用程序并重新构建。这对我有用。

    【讨论】:

      【解决方案6】:

      对我有用的是“构建”->“清理项目”并运行它 这不是解决方案

      请检查您在 firebase 和 android studio 上的包名是否相同

      关闭您的 android studio 项目并重新运行您的项目

      【讨论】:

        【解决方案7】:

        我知道这是一个老问题,但它可能会对像我这样荒谬的人有所帮助。我的问题的根源是我忘记更改 app 文件夹中的 google-services.json 文件。我所做的只是更改该文件,然后 clean projectrebuild project。您可以通过在R.string.default_web_client_id 上执行ctrl + click 来确认配置已更改,这将引导您到构建文件夹下生成的values.xml

        【讨论】:

          【解决方案8】:

          我也遇到了同样的问题,它对我有用。

          重新下载 google-services.json 文件并将其添加到项目中并更改项目级 Gradle 中的类路径

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

          同步并运行您的项目,它会起作用。

          【讨论】:

            【解决方案9】:

            我错误地将我的 gcloud 仪表板 API 仪表板中的 google 服务 JSON API 密钥限制为仅在 android 上进行映射,因此我建议从那里检查任何限制。

            【讨论】:

              猜你喜欢
              • 2020-10-13
              • 2019-04-30
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多