我的firebase /数据库什么也没显示

时间:2016-08-07 08:53:38

标签: android firebase firebase-realtime-database

Firebase myFirebaseRef = new Firebase("https://my-riddle1.firebaseio.com/");
// step 5: write data
myFirebaseRef.child("aaa").setValue("aaa");
myFirebaseRef.child("message").setValue("The best Scores");
myFirebaseRef.child("BestScore").child("finalscore").child(name).setValue(score1);

我在我的代码中写了这个,但当我查看FireBase时,那里什么都没有。此外,我还完成了FireBase工作的所有步骤,就像它们在网站上显示的一样。

我该怎么办?感谢。

1 个答案:

答案 0 :(得分:1)

快速猜测是您的数据库拒绝写操作。默认情况下,在firebase.google.com上创建的项目要求用户在访问数据库之前进行身份验证。

要验证这确实发生了什么,请将完成侦听器传递到setValue()

myFirebaseRef.child("aaa").setValue("aaa", new Firebase.CompletionListener() {
    @Override
    public void onComplete(FirebaseError firebaseError, Firebase firebase) {
        if (firebaseError != null) {
            System.out.println("Data could not be saved. " + firebaseError.getMessage());
        } else {
            System.out.println("Data saved successfully.");
        }
    }
});

如果由于您的安全规则确实写入被拒绝,您可以选择一些方法来解决问题。首先,您可以启用对数据库的公共访问。这不建议用于生产数据库,但通常在开发中可接受。或者(以及生产数据库的最佳选项),您可以在尝试编写数据库之前对用户进行签名。

允许公开访问

您可以更改数据库的安全规则以允许公共访问。请参阅此page in the Firebase documentation上的第一个蓝色注释:

  

注意:默认情况下,对数据库的读写访问权限受到限制,因此只有经过身份验证的用户才能读取或写入数据。要在不设置Authentication的情况下开始使用,您可以configure your rules for public access。这确实使您的数据库对任何人开放,即使是不使用您的应用程序的人也是如此,因此请确保在设置身份验证时再次限制数据库。

在写

之前登录

您还使用Firebase 2.x SDK编写数据。对于在firebase.google.com上创建的项目,建议使用较新的SDK。有了这些,您可以轻松地匿名登录用户,然后设置值:

final FirebaseDatabase db = FirebaseDatabase.getInstance();
final FirebaseAuth auth = FirebaseAuth.getInstance();
auth.addAuthStateListener(new FirebaseAuth.AuthStateListener() {
    @Override
    public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
        FirebaseUser user = firebaseAuth.getCurrentUser();
        if (user != null) {
            // User is signed in, write to the database
            db.getReference().child("aaa").setValue("aaa");
        } else {
            // User is not signed in, sign them in now
            auth.signInAnonymously();
        }
    }
});

这只是一个快速的代码片段,可以帮助您入门。我强烈建议您按照latest Firebase documentation for Android进行操作{@ 3}}。