Firebase数据库无法正常工作且无响应

时间:2017-06-17 16:05:41

标签: java android firebase firebase-realtime-database

我正在尝试将新用户记录插入我的Firebase数据库:

    databaseReference
            .child("users")
            .child(firebaseUser.getUid())
            .setValue(User.fromFirebaseUser(application.firebaseUser))
            .addOnSuccessListener(new OnSuccessListener<Void>() {
                @Override
                public void onSuccess(Void aVoid) {
                    startActivity(MainActivity.createIntent(SplashActivity.this));
                    finish();
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    showSnackbar(R.string.error_user_registration_failed);
                }
            })
            .addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    Log.d(TAG, "complete");
                }
            });

但没有任何反应。没有来自logcat的消息,也没有任何一个侦听器被击中。

我的权限是默认权限(必须经过身份验证)并且我确定了我的权限。在数据库调用之前调用firebaseUser.getUid()会按预期返回当前的userId。

我已经检查了所有依赖项,并确保我的google-services.json文件是最新的。

我已尝试通过firebaseDatabase.setLogLevel()启用调试,但出于某种原因,Logger.Level不包含枚举(它们会被混淆?)

我错过了什么吗?

2 个答案:

答案 0 :(得分:2)

启用调试后(感谢Bob Snyder)它给了我一个错误。

基本上你需要启用&#34;令牌服务API&#34;在Google Developer console中。我不确定为什么以及如何与FirebaseDatabase相关,我无法在整个Google的文档中找到任何对它的引用,但它确实有效。

答案 1 :(得分:0)

我在读取用户数据时遇到了同样的问题。

我将数据库规则更改为:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

它确实有效,但是请确保在更改和发布新规则后先杀死该应用程序。

注意:这些规则仅用于测试,切勿为发布的应用保存