【问题标题】:Flutter FirebaseAuth token issueFlutter FirebaseAuth 令牌问题
【发布时间】:2021-11-17 08:30:45
【问题描述】:

[FirestoreCallCredentials]:无法获取令牌:com.google.firebase.FirebaseException:发生内部错误。 [ 对此 API securetoken.googleapis.com 方法 google.identity.securetoken.v1.SecureToken.GrantToken 的请求被阻止。 ].

尝试在 CloudFirestore 中创建、更新或删除文档时收到此错误。但是,大约 1 小时后我收到了这个。 Goolge Cloud Console 中的 OAuth 已启用,令牌服务 API 也已启用。

【问题讨论】:

  • 您的问题解决了吗?
  • 嘿 Pation 你在这方面有什么进展吗?我试图在下面提供答案。你有没有机会检查一下,这有意义吗?如果我的回答有用,请点击它左侧的点赞按钮 (▲)。如果它回答了您的问题,请单击复选标记 (✓) 接受它。这样其他人就知道你得到了(足够的)帮助。

标签: firebase flutter dart google-cloud-platform google-signin


【解决方案1】:

此错误可能有多种可能性和原因。我列出了其中一些供您查看、分析和试用。

解决方案 1:

要配置 API 限制,请转到凭据页面 [https://console.cloud.google.com/apis/credentials],然后按照以下说明操作:

  1. 点击API key进行配置
  2. 在 API 限制部分选择限制键。
  3. 从下拉列表中选择您的 API 密钥需要调用的所有 API 名称 - “Identity Toolkit API”、“Token Service API”
  4. 保存更改。

您还可以参考这些文档[1][2] 来管理 Firebase 的 API 密钥。

[1]https://firebase.google.com/docs/projects/api-keys
[2]https://cloud.google.com/docs/authentication/api-keys

解决方案 2:

在 Firestore 规则中正确设置 auth 的要求。请参阅开始使用 Cloud Firestore 安全规则。

如果需要身份验证,您可以通过以下方式设置 Firestore 规则:

rules_version = '2'; 
service cloud.firestore { 
match /databases/{database}/documents { 
match /{document=**} {
 allow read, write:
 if request.auth != null;
 } } }

解决方案 3:

如果您使用 getIdToken 方法调用和检索 Firebase 令牌 ID,则需要执行以下操作:

FirebaseUser user = await FirebaseAuth.instance.currentUser();
String token;
user.getIdToken().then((result) {
token = result.token;
});

你不能打电话给FirebaseAuth.instance.currentUser().getIdToken(),因为它不起作用。

【讨论】:

    猜你喜欢
    • 2019-02-13
    • 2018-01-17
    • 2018-01-15
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 2017-12-19
    相关资源
    最近更新 更多