Flutter Firebase Auth - INVALID_REFRESH_TOKEN(Firebase Emulator)

stszievb  于 2023-06-07  发布在  Flutter
关注(0)|答案(2)|浏览(564)

在我的Flutter应用程序中,我使用Firebase Auth包进行用户身份验证。当我登录时,一切似乎都工作了一段时间。但是过了一段时间(不确定是否正好是1小时),我在调试控制台中收到以下消息:
带Firestore(4587):(24.0.0)[FirestoreCallCredentials]:无法获取身份验证令牌:com.google.firebase.FirebaseException:发生内部错误。[无效_刷新_令牌]。带Firestore(4587):(24.0.0)[WatchStream]:(3351 d52)流已关闭,状态为:状态{code=UNAUTHENTICATED,description=null,cause=com.google.firebase.FirebaseException:发生内部错误。[无效_刷新_令牌]
从那时起,我无法访问任何Firebase服务。解决此问题的方法是注销并重新登录。
不确定这种行为是否会发生在生产中,以及我在开发中使用Firebase Emulators进行Auth和Firestore。

r1wp621o

r1wp621o1#

此错误可能有多种原因。我只是列出一些指针供您检查:
启用:
1.这可能是由禁用的电子邮件/密码登录(默认情况下禁用)导致的。如下所示在Firebase控制台中启用身份验证部分,或者您可以在Firebase控制台中临时尝试“anonymously”/ guest登录。
1.在Google Cloud Console中启用令牌服务API
1.启用Cloud Firestore API

如果您使用的是本地Authentication模拟器,则可以通过使用useAuthEmulator方法连接到本地Authentication模拟器,让您的应用与之对话。在Flutter库中,这已经登陆到firebase_auth包的0.20版本和更高版本中。

Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();

// Ideal time to initialize
await FirebaseAuth.instance.useAuthEmulator('localhost', 9099);
//…
}

如果您使用的是本地Firestore模拟器,则可以通过使用useFirestoreEmulator方法连接到本地Firestore模拟器,让您的应用与本地Firestore模拟器进行对话。

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();

  // Ideal time to initialize
  FirebaseFirestore.instance.useFirestoreEmulator('localhost', 8080);
  //...
}
  • 尝试升级到最新版本的firebase。
  • 请确保传递的端口正确,仿真程序正在该端口上运行。
  • 确保您已按照每个操作系统的FlutterFire安装说明中的模拟器使用说明启用了与应用程序中模拟器的网络连接。
    更新:

对于任何访问此问题的人,上面的这些指针对我们的OP没有帮助,对她有帮助的是,将项目中的当前google-services.json与Firebase控制台在生成SHA-1密钥(为您的应用创建OAuth2客户端和API密钥)后生成的google-services.json进行比较。检查stackoverflow thread,它解释了如何添加SHA-1密钥。如果你想用终端来做这件事,看看这个article),结果发现它们不太一样。因此,将新的google-service.json添加到android/app下的项目中并执行flutter clean是一个技巧。

nhaq1z21

nhaq1z212#

可能发生这种情况的另一个原因是关闭计算机上的模拟器进程。
Firebase模拟器在firebase emulators:start完成时清除数据。
因此,OP可能在工作期间重新启动了他们的PC/MacBook,这可以解释它。
我决定把它贴在这里,因为有人可能会偶然发现这个问题,而不是像我一样思考它。

相关问题