我在 Firebase 控制台的实时数据库中看不到任何数据

I don't see any data in my Realtime Database in Firebase's console

我想知道如何正确使用 Firebase,所以我编写了这个简单的代码,保存了一个带有代码和密码的“游戏”对象。我还让它在屏幕上显示游戏的密钥。 运行 代码有效,并在屏幕上显示了一个键,但我在 Firebase 控制台上的任何地方都找不到任何数据。这是代码:

public class testthing extends AppCompatActivity implements View.OnClickListener {
    EditText pass;
    TextView showkey;
    EditText code;
    Button create;
    String codestr;
    String passstr;
    FirebaseDatabase firebaseDatabase;
    DatabaseReference gameRef;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_testthing);
        pass = findViewById(R.id.pass);
        code = findViewById(R.id.code);
        create = findViewById(R.id.create);
        showkey = findViewById(R.id.showthingy);
        firebaseDatabase = FirebaseDatabase.getInstance();
        create.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        if(view==create){
            codestr=code.getText().toString();
            passstr=pass.getText().toString();

            Game g = new Game(codestr,passstr,"");
            gameRef = firebaseDatabase.getReference("gameRooms").push();
            g.key = gameRef.getKey();
            gameRef.setValue(g);
            showkey.setText(g.key);

        }
    }
}

“游戏”class是:

@IgnoreExtraProperties
public class Game {
    public String key;
    public String code;
    public String password;
    public Game(){
    }
    public Game(String code, String password,String key){

        this.code = code;
        this.password = password;
        this.key = key;
    }

}

当您使用以下代码行时:

gameRef.setValue(g);

您尝试写入数据库的数据可能成功或失败,但您永远不会知道,因为您没有附加侦听器来检查它。所以解决这个问题,你必须像下面的代码行一样附加一个监听器:

gameRef.setValue(g).addOnCompleteListener(new OnCompleteListener<Void>() {
    @Override
    public void onComplete(@NonNull Task<Void> task) {
        if (task.isSuccessful()) {
            Log.d("TAG", "The operation is complete.");
            showkey.setText(g.key);
        } else {
            Log.d("TAG", task.getException().getMessage());
        }
    }
});

如果操作失败,很可能是 Firebase 服务器拒绝了您的操作。因此,请确保您有适当的规则。否则,将键设置为 TextView。请记住,所有 Firebase API 都是异步的。这包括写入和读取操作。如果以后需要阅读资料,推荐您查看以下文章: