2016-11-08 65 views
3

必须切换到Firebase Admin 4.0.0 SDK后,才能在服务器上获得此信息。任何人都知道我可以切换回旧的server-sdk依赖关系的方式,或者解决这个异常的方法吗?在此期间我已经向FB汇报过了,但是想要让服务器再次运行......目前我似乎完全陷入困境。

java.lang.NoClassDefFoundError: com/google/firebase/database/collection/LLRBNode$NodeVisitor 
    at com.google.firebase.database.snapshot.PriorityUtilities.NullPriority(PriorityUtilities.java:13) 
    at com.google.firebase.database.snapshot.NodeUtilities.NodeFromJSON(NodeUtilities.java:12) 
    at com.google.firebase.database.core.Repo.updateInfo(Repo.java:540) 
    at com.google.firebase.database.core.Repo.onServerInfoUpdate(Repo.java:494) 
    at com.google.firebase.database.core.Repo.onDisconnect(Repo.java:485) 
    at com.google.firebase.database.connection.PersistentConnectionImpl.onDisconnect(PersistentConnectionImpl.java:409) 
    at com.google.firebase.database.connection.Connection.close(Connection.java:82) 
    at com.google.firebase.database.connection.Connection.onReset(Connection.java:199) 
    at com.google.firebase.database.connection.Connection.onControlMessage(Connection.java:152) 
    at com.google.firebase.database.connection.Connection.onMessage(Connection.java:110) 
    at com.google.firebase.database.connection.WebsocketConnection.appendFrame(WebsocketConnection.java:226) 
    at com.google.firebase.database.connection.WebsocketConnection.handleIncomingFrame(WebsocketConnection.java:271) 
    at com.google.firebase.database.connection.WebsocketConnection.access$500(WebsocketConnection.java:20) 
    at com.google.firebase.database.connection.WebsocketConnection$WSClientTubesock$2.run(WebsocketConnection.java:67) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.ClassNotFoundException: com.google.firebase.database.collection.LLRBNode$NodeVisitor 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 21 more 

和稍后:

Tue Nov 08 14:49:06 CET 2016 [ERROR] RunLoop: Uncaught exception in Firebase Database runloop (3.0.0). Please report to [email protected] 
java.lang.NullPointerException 
at com.google.firebase.database.core.Repo.addEventCallback(Repo.java:518) 
at com.google.firebase.database.Query$3.run(Query.java:195) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 

回答

3

Firebase刚刚发布了firebase-admin的4.0.1版本。这增加了缺失的类,似乎正常工作。

这可能是管理得更好。 firebase-admin 4.0.0版本应该已经过测试,另外,在添加新的依赖项的同时杀死旧的依赖项是没有意义的 - 应该有一些时间(至少几天)在哪里人们不会被迫升级。

+0

这个也可以... –

0

今天早上遇到了一模一样的问题。显然,Firebase将firebase-server-sdk的版本更新为3.0.2,这是一个空包,迫使切换到firebase-admin 4.0.0。 尽管你仍然可以使用firebase-server-sdk 3.0.1。 在你的Maven文件提出:

<dependency> 
    <groupId>com.google.firebase</groupId> 
    <artifactId>firebase-server-sdk</artifactId> 
    <version>3.0.1</version> 
</dependency> 

矿具有

<version>[3.0.1,)</version> 

这使得它拉3.0.2,而不是3.0.1因为它是最新的

一旦问题等价版本与firebase管理已解决,它可能是一个好主意,以切换到它

+0

不幸的是firebase-server-sdk artefact解决方案似乎有问题,我不能切换回firebase-server-sdk,尝试3.0.1,3.0.2,它不能再解析(在三台具有不同设置的不同机器上,确定它不是本地问题)。你确定一个干净的建筑适合你吗? – MrBigglesworth

1

刚刚得到它自己的工作与POM文件中的此添加(您仍然可以使用t他最新的firebase实现):

<dependency> 
    <groupId>com.google.firebase</groupId> 
    <artifactId>firebase-server-sdk</artifactId> 
    <version>4.0.0</version> 
</dependency> 
<dependency> 
    <groupId>com.google.firebase</groupId> 
    <artifactId>firebase-server-sdk</artifactId> 
    <version>3.0.1</version> 
</dependency> 
+0

谢谢,但是这正在回到Google之前的Firebase依赖关系,并且缺少像DatabaseReference这样的关键类,所以不能解决我的问题。 – MrBigglesworth

+0

更改了答案,请注意,您不会错过任何课程。 – sim

+0

这对我有用。谢谢。 –

0

我解决了这个问题,有必要将版本更新到4.0.1!

相关问题