【问题标题】:How can I create firebase user account如何创建 Firebase 用户帐户
【发布时间】:2016-05-14 10:33:13
【问题描述】:

我已经成功地使用来自 android 的电子邮件创建了用户,没有任何问题 但是在我下载了标准的 java 库并尝试让用户之后,我没有收到错误或回调错误或成功的反馈

public static void main(String ...args){
    String url= "https://example.firebaseio.com/";
    Firebase fb = new Firebase(url);
    fb.createUser("example@gmail.com", "123456", new Firebase.ResultHandler() {
        @Override
        public void onSuccess() {
            System.out.println("success");
        }
        @Override
        public void onError(FirebaseError firebaseError) {
            System.out.println("failed !");
        }
    });
    System.out.println("Hello there");
}

【问题讨论】:

  • 主线程可能在回调返回之前就退出了。您可以检查您的 Firebase 帐户以查看该用户是否实际创建
  • 不错@cricket_007。有关这方面的更多信息,请参阅stackoverflow.com/questions/37098006/…
  • @FrankvanPuffelen 谢谢,我知道 RxJava 会做同样的事情,但该 API 中有一个阻塞机制。不确定 Firebase

标签: java firebase firebase-authentication


【解决方案1】:

与上面的 cmets 一样,问题是主线程在 ResultHnadler 被调用之前退出,所以我以这种方式修复了问题,以防止主线程在 ResultHnadler 被调用之前终止 如果有更好的方法那就太好了

 public static void main(String ...args)  {
    final AtomicBoolean isCalled = new AtomicBoolean(false);
    String FIREBASE = "https://example.firebaseio.com/";
    Firebase fb = new Firebase(FIREBASE);
    fb.createUser("testtesttest@gmail.com", "1234321", new Firebase.ResultHandler() {
        @Override
        public void onSuccess() {
            isCalled.set(true);
            System.out.println("success");
        }
        @Override
        public void onError(FirebaseError firebaseError) {

            isCalled.set(true);
            System.out.println("fail");
        }
    });
    while (!isCalled.get()){
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 2016-10-02
    相关资源
    最近更新 更多