让Firebase使用java,而不是Android

让Firebase使用java,而不是Android,java,libgdx,firebase,Java,Libgdx,Firebase,我正在尝试启动并运行一个libgdx项目,我想使用firebase进行用户登录。我发现SimleLogin类依赖于Android.jar。有没有办法解决这个问题,因为我想让桌面java应用程序和android一样运行 以下是导致问题的代码: SimpleLogin authClient = new SimpleLogin(myRef);; authClient.createUser("myuser@gmail.com", "much wow", new SimpleLoginA

我正在尝试启动并运行一个libgdx项目,我想使用firebase进行用户登录。我发现SimleLogin类依赖于Android.jar。有没有办法解决这个问题,因为我想让桌面java应用程序和android一样运行

以下是导致问题的代码:

SimpleLogin authClient = new SimpleLogin(myRef);;

authClient.createUser("myuser@gmail.com", "much wow",
        new SimpleLoginAuthenticatedHandler() {

            @Override
            public void authenticated(FirebaseSimpleLoginError error,
                    FirebaseSimpleLoginUser user) {
                if (error != null) {
                    System.out.println(error);
                } else {
                    System.out.println(user);
                }

            }
        });
这是在运行时进行的:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: java.lang.NoClassDefFoundError: android/net/Uri
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:120)
Caused by: java.lang.NoClassDefFoundError: android/net/Uri
    at com.firebase.simplelogin.SimpleLogin.makeRequest(SimpleLogin.java:634)
    at com.firebase.simplelogin.SimpleLogin.createUser(SimpleLogin.java:417)
    at com.mygdx.game.MyGdxGame.create(MyGdxGame.java:63)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)
Caused by: java.lang.ClassNotFoundException: android.net.Uri
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 5 more

我是要这么做,还是他们声称支持的Java平台真的只是android?

Firebase的Java产品有两个部分,每个部分都有不同的依赖性:

-使用此选项访问Firebase实时数据库

文档有点倾向于Android,但它在Java和可以调用Java的语言(例如Groovy)中工作得非常好

-这使身份验证更容易,但如果愿意,您可以自己处理身份验证

此库仅适用于Android。一般来说,身份验证通常以一系列特定于平台的技巧结束。这个库主要关注Android的一系列技巧

听起来您需要在libgdx中使用auth。你能把你的问题扩展到更多关于预期用例的内容吗


(摘自上面@Ossama的评论)

Firebase客户端有两种风格。一个是Android,另一个是JVM。不幸的是,默认情况下,您只能获得Android版本

您将从更改日志中找到JVM版本

2015年9月24日-版本2.4.0()()

我认为使用jvmjar可以解决这个问题

旧评论: 请使用以下jar for Java SDK


我得到了上面的链接

我不确定它最近是否改变了,但是这个页面()只显示了Android。因此,我确实怀疑它在非Android Java平台上是否有效(未经修改)。对堆栈溢出问题的快速扫描似乎暗示非Android Java用户正在使用其RESTAPI访问Firebase。请参阅Firebase Java SDK支持Android和普通Java,但是Firebase简单登录库目前仅支持Android。大多数人在不在移动设备上运行时使用自定义登录。你能详细说明一下你想要完成什么吗?你能更新你的答案并添加一个代码,让它在java(而不是Android)上使用新的firebase.google.com工作吗?因为有一些google-services.json文件