android - 手动创建 api 后错误删除的 Firebase 凭据 API 无法正常工作
问题描述
突然我的应用程序开始在这里抛出一个错误:
{
"error": {
"code": 400,
"message": "API key expired. Please renew the API key.",
"errors": [{
"message": "API key expired. Please renew the API key.",
"domain": "global",
"reason": "badRequest"
}],
"status": "INVALID_ARGUMENT"
}
}
我成功解决了这个问题
然后我从 android studio 创建了一个签名的 apk,然后我又收到了一个错误,这是由于 sha1 指纹不在 firebase 中。我也成功解决了这个问题。
但是......突然我的应用程序无法正常工作,就像我无法登录并且控制台中没有红线一样。我不知道原因。我的应用程序已完成,但在最后一刻登录无法正常工作,就像它没有调用 failureListener 但它也没有调用成功一样。
我已经做了这些事情。
- 将 firebase google services JSON 文件与我项目中的文件匹配(完全相同)。
- 从谷歌云控制台检查了 API,它们匹配正确(完全相同)。
- 检查 build.Gradle 文件的实现是否正确。
- 检查了android清单文件,项目ID和其他东西与firebase JSON文件和firebase设置中的相同。
- 谷歌云控制台有一个由 firebase 自动生成的 API。
- 谷歌可以控制台有 2 o auth 客户端 ID 由我使用 sha1 指纹创建,用于调试和发布。
- 也无效并重新启动IDE。
- 还在其他设备上进行了检查。
- 此外,检查了不同的互联网连接。
我的项目太大而无法移动到另一个 android 项目,我不希望出现其他问题,如果我在移动文件时出错,可能会出现这些问题。
Firebase 助手说存在用于存储、分析、崩溃分析等的连接......这是我单击按钮登录按钮时来自 android 工作室的最新控制台报告。
V/FA: Recording user engagement, ms: 14026
V/FA: Connecting to remote service
V/FA: onActivityCreated
V/FA: Activity paused, time: 1888755682
D/PhoneWindow: DEBUG_ALIENSCREEN:getRotation mRotation=0
I/DecorView: setWindowBackground mBackgroundPadding = Rect(0, 0 - 0, 0), mFramePadding = Rect(0, 0 - 0, 0), pkg = com.example.lifejournalpersonaldiary
V/PhoneWindow: DecorView setVisiblity: visibility = 4, Parent = null, this = DecorView@1bf912d[]
D/WindowClient: Add to mViews: DecorView@1bf912d[SignInHubActivity], this = android.view.WindowManagerGlobal@cc54b61
D/ViewRootImpl[SignInHubActivity]: hardware acceleration = true , fakeHwAccelerated = false, sRendererDisabled = false, forceHwAccelerated = false, sSystemRendererDisabled = false
V/PhoneWindow: DecorView setVisiblity: visibility = 0, Parent = ViewRoot{9759c4f com.example.lifejournalpersonaldiary/com.google.android.gms.auth.api.signin.internal.SignInHubActivity,ident = 3}, this = DecorView@1bf912d[SignInHubActivity]
I/TouchMotionHandler: handler onAttached
E/: nFreeSize: 32784990208
D/Surface: Surface::connect(this=0x77b8df7000,api=1)
D/Surface: Surface::allocateBuffers(this=0x77b8df7000)
V/FA: Connection attempt already in progress
V/FA: Activity resumed, time: 1888755756
D/GraphicBuffer: register, handle(0x77bc0a9580) (w:720 h:1436 s:736 f:0x1 u:b00)
D/SurfaceExt: callingApp: com.example.lifejournalpersonaldiary
D/SurfaceExt: ENABLE_WHITE_LIST: false,isInWhiteList: false
D/Surface: lockCanvas
Surface::connect(this=0x77b8dfe000,api=2)
D/GraphicBuffer: register, handle(0x77b93cbb40) (w:1 h:1 s:32 f:0x1 u:933)
D/SurfaceExt: callingApp: com.example.lifejournalpersonaldiary
D/SurfaceExt: ENABLE_WHITE_LIST: false,isInWhiteList: false
D/Surface: lockCanvas
Surface::connect(this=0x77b8df8000,api=2)
D/GraphicBuffer: register, handle(0x77b93cbb40) (w:720 h:84 s:736 f:0x1 u:933)
D/GraphicBuffer: register, handle(0x77bc0a9a00) (w:720 h:1436 s:736 f:0x1 u:b00)
D/SurfaceExt: callingApp: com.example.lifejournalpersonaldiary
ENABLE_WHITE_LIST: false,isInWhiteList: false
D/Surface: lockCanvas
E/: nFreeSize: 32784990208
D/GraphicBuffer: register, handle(0x77b93cbb40) (w:1 h:1 s:32 f:0x1 u:933)
D/SurfaceExt: callingApp: com.example.lifejournalpersonaldiary
D/SurfaceExt: ENABLE_WHITE_LIST: false,isInWhiteList: false
D/Surface: lockCanvas
D/GraphicBuffer: register, handle(0x77b93cbb40) (w:720 h:84 s:736 f:0x1 u:933)
V/FA: Connection attempt already in progress
V/FA: Connection attempt already in progress
V/FA: Screen exposed for less than 1000 ms. Event not sent. time: 75
V/FA: Connection attempt already in progress
V/FA: Activity paused, time: 1888755837
D/FA: Connected to remote service
V/FA: Processing queued up service tasks: 5
E/: nFreeSize: 32784986112
E/: nFreeSize: 32784977920
V/FA: Activity resumed, time: 1888757941
V/PhoneWindow: DecorView setVisiblity: visibility = 0, Parent = ViewRoot{b04e448 com.example.lifejournalpersonaldiary/com.example.lifejournalpersonaldiary.BackupRestore,ident = 1}, this = DecorView@a36c565[BackupRestore]
D/Surface: Surface::disconnect(this=0x77b8df7000,api=1)
D/GraphicBuffer: unregister, handle(0x77bc0a7e40) (w:720 h:1436 s:736 f:0x1 u:b00)
D/GraphicBuffer: unregister, handle(0x77bc0a8200) (w:720 h:1436 s:736 f:0x1 u:b00)
D/SurfaceExt: callingApp: com.example.lifejournalpersonaldiary
ENABLE_WHITE_LIST: false,isInWhiteList: false
D/Surface: lockCanvas
D/SurfaceExt: callingApp: com.example.lifejournalpersonaldiary
D/SurfaceExt: ENABLE_WHITE_LIST: false,isInWhiteList: false
D/Surface: lockCanvas
I/TouchMotionHandler: handler onDetached
D/View: [Warning] assignParent to null: this = DecorView@1bf912d[SignInHubActivity]
D/Surface: Surface::disconnect(this=0x77b8df8000,api=2)
D/GraphicBuffer: unregister, handle(0x77b8ca5140) (w:720 h:84 s:736 f:0x1 u:933)
D/GraphicBuffer: unregister, handle(0x77ba3c1040) (w:720 h:84 s:736 f:0x1 u:933)
D/Surface: Surface::disconnect(this=0x77b8dfe000,api=2)
D/GraphicBuffer: unregister, handle(0x77cd4e1d80) (w:1 h:1 s:32 f:0x1 u:933)
D/GraphicBuffer: unregister, handle(0x77ba3c1100) (w:1 h:1 s:32 f:0x1 u:933)
D/WindowClient: Remove from mViews: DecorView@1bf912d[SignInHubActivity], this = android.view.WindowManagerGlobal@cc54b61
E/: nFreeSize: 32784973824
V/FA: Inactivity, disconnecting from the service
解决方案
步骤 - 1. 解决方案是从项目中删除 firebase 依赖项,然后使缓存无效,然后清理项目。重启安卓工作室。
步骤 - 2. 您必须从 Gradle 文件中删除一些行,也从项目设置中删除 -> 模块 -> 删除其中包含的每个包含 firebase 名称的行。
步骤 - 3. 之后,从 Firebase 中删除您的项目,它将显示危险警告。重启android studio后,从工具菜单连接firebase。在项目中添加您需要的插件,例如数据库、存储、身份验证、crashlytics 等。
步骤 - 4. 然后在 firebase 的项目设置中再次添加 SHA 密钥(也使用 sha 256 调试和发布),否则您将再次卡住。
提示:不要更改项目名称或类似名称,因为这无关紧要,这样做可能会导致问题。并且这次不要从 console.cloud.google.com 中删除 API 密钥,实际上,您不应该弄乱 API,因为我们不需要这样做。Firebase 会自动创建密钥并且工作正常。
推荐阅读
- c# - 在 C# 中等待异步任务时会发生什么?
- java - 我可以在 Eclipse 中运行并获取我的代码的输出,但无法通过命令提示符运行
- javascript - 使用 Redirect 时完全重建 React Parent Component
- ruby - 在嵌套哈希内的数组中插入值会更新多条记录
- php - Symfony 4.1:学说:固定装置:加载不读取测试配置
- r - 在 R 和 MySQL 中使用变量作为表名
- excel - 使用 VBA 自动上传 FTP
- .net - 如何在控制器 MVC 中选择 Html 选择列表值我的代码附加
- java - Jena 导出:嵌套元素或添加描述
- angular - JWT 验证了在另一个浏览器中使用的偶数令牌