- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我收到以下错误:
java.lang.IllegalArgumentException
at com.google.api.client.repackaged.com.google.common.base.Preconditions.checkArgument(Preconditions.java:111)
at com.google.api.client.util.Preconditions.checkArgument(Preconditions.java:37)
at com.google.api.client.json.webtoken.JsonWebSignature$Parser.parse(JsonWebSignature.java:599)
at com.google.firebase.auth.FirebaseToken.parse(FirebaseToken.java:44)
at com.google.firebase.auth.FirebaseAuth$4.execute(FirebaseAuth.java:456)
at com.google.firebase.auth.FirebaseAuth$4.execute(FirebaseAuth.java:449)
at com.google.firebase.internal.CallableOperation.call(CallableOperation.java:36)
at com.google.firebase.auth.FirebaseAuth.verifyIdToken(FirebaseAuth.java:413)
at d.d.pamper.test.ApplicationTest.testFire2(ApplicationTest.java:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:73)
at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:83)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
我意识到堆栈并不是很有帮助。我已经在 Admin SDK 中进行了调试。它正确读取我的服务 json,FirebaseAuth.getInstance()
不为 null,我可以看到我的项目 ID 设置正确。
这就是我初始化的方式:
if(FirebaseApp.getApps().size() > 0) {
System.out.println("initialized already ");
return;
}
FirebaseOptions options = null;
try {
System.out.println("try initializing");
options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(gservicesConfig.getInputStream()))
.setDatabaseUrl("https://pamperanywhere.firebaseio.com")
.build();
} catch (IOException e) {
e.printStackTrace();
}
FirebaseApp.initializeApp(options);
return;
这就是我测试 token 的方式:
@Test
public void testFire2() {
String idToken = "REFRESH TOKEN FROM FIREBASE";
if(!StringUtils.isEmpty(idToken)) {
FirebaseToken firebaseToken = null;
if(FirebaseAuth.getInstance() == null) {
System.out.println("FirebaseAuth.getInstance() == null");
}
try {
firebaseToken = FirebaseAuth.getInstance().verifyIdToken(idToken, true);
} catch (IllegalArgumentException e) {
System.out.println("exception+IllegalArgumentException");
e.printStackTrace();
} catch (FirebaseAuthException e) {
System.out.println("exception+FirebaseAuthException");
e.printStackTrace();
}
if (firebaseToken == null) {
System.out.println("firebaseToken == null");
}
}
}
我不确定为什么它会抛出IllegalArgumentException
。我能够正常登录应用程序(前端),我看到我的刷新 token (前端),但在管理方面它给了我这个问题。我确信我传递了正确的 token ,因为我可以登录并查看 token (前端)。
Maven 是:
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>6.2.0</version>
</dependency>
感谢您的帮助。
最佳答案
ID token 应该是具有 3 个段(用点分隔)的有效 JWT。刷新 token 当然不是这样。因此,底层 token 解析器因上述断言错误而失败。以下是来自 Google API 客户端的相关代码。基本上它无法在给定的标记字符串中找到任何点。
public JsonWebSignature parse(String tokenString) throws IOException {
// split on the dots
int firstDot = tokenString.indexOf('.');
Preconditions.checkArgument(firstDot != -1);
...
关于java - Firebase 管理 sdk : IllegalArgumentException, Preconditions.checkArgument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50677893/
我是 Selenium 的新手,我正在尝试创建一个小型框架,我在其中登录一个应用程序,然后尝试验证帐户中的一些文本。 但是一旦我的脚本登录帐户,浏览器就会关闭,我无法验证文本字符串。 有人说是因为dr
我正在Xcode 11上构建SwiftUI应用程序,但是当我切换到应用程序中的特定选项卡时,它会立即终止。 问题是,它始终指向Application Delegate文件,我认为这并不是真正的问题。我
脚步: 接收 ViewModel 以更新或创建实体 如果存在,则尝试获取现有实体 调用 IMapper.map(viewModel, entity) 因为我正在为 map 提供目标值,所以是否可以检查
在阅读了一些关于集成管道的文档后,我对 IIS 如何确定何时运行托管模块、托管请求实际上是什么以及如何确定感到困惑,例如: http://www.iis.net/learn/application-f
为什么当警告级别处于 2 级或更高级别时,我会立即收到此琐碎代码示例的以下警告? public int Foo(int a) { if (a >= 0) throw new ArgumentE
据我了解,在更改某些对象状态之前,我们使用 Guava 先决条件快速失败(来自 stackoverflow 的一个很好的答案 here)。这很好。然而,它会抛出运行时异常,并且这不是应用程序用户最喜欢
我正在为类 ForeignCollection 编写反序列化程序,即 abstract ,并在 ORMLite Android Library 中提供给我.请参阅下面的代码。 public class
在我们的代码中,我们经常使用Preconditions 检查参数: Preconditions.checkArgument(expression, "1" + var + "3"); 但有时,这段代码
我正在尝试对类的成员函数返回的值使用@postcondition 装饰器,如下所示: def out_gt0(retval, inval): assert retval > 0, "Retur
我的应用程序运行良好,但由于我的操作系统 Debian 出现问题,我决定重新安装它并选择安装 Ubuntu-16.04 而不是最后一个 Debian。现在一切正常。 问题是我的 android 应用程
在我的项目中,我们使用 voltdb 作为数据库,我们使用 liquibase 来管理版本等。我们在一个文件中编写变更集,为 voltdb 我们使用 RunAlways.xml 包含以下步骤的文件 删
我尝试将 UUID 添加到用户模型上的 UUID 数组属性,但它返回“前提条件失败 - id.exists”。我在数据库上使用更新而不是创建或保存。使用 PostgreSQL 数据库。错误在 Flue
使用 @Nonnull 注释的参数然后使用 Preconditions.checkNotNull() 检查是否有意义? 它们有什么区别?据我所知,使用 @Nonnull 只会指定一个契约(Contra
我有一个带有以下相关代码的 Python Eve 应用程序: def handle_user_update(request, lookup): if request and request.data:
当使用“If-Match” header 执行 PUT 或 DELETE 时,如果客户端发送的 ETag 指示过时,我想返回整个最新实体而不是仅仅返回 412 (包括 HTTP header 中的新
我正在浏览 Guava 代码库和 in Preconditions source there is some explanation如下引用: All recent hotspots (as of 2
我正在尝试使用 python mechanize 模块在网站上自动化一个过程。 使用以下代码,我将刷新站点,直到找到我想要关注的链接: for link in br.links
我收到以下错误: java.lang.IllegalArgumentException at com.google.api.client.repackaged.com.google.commo
我想在我的应用程序的方法中添加字段验证(例如字段不为空且为正)。 private void assertionTest(Integer i) { // want to first assert
我正在使用以下查询从 Google 数据存储区检索一些实体: var query = datastore.createQuery(namespace,tableName); query.select
我是一名优秀的程序员,十分优秀!