![](/img/trans.png)
[英]My realtime database of Firebase is not loading any data on the console also for rules
[英]I don't see any data in my Realtime Database in Firebase's console
我想弄清楚如何正确使用 Firebase,所以我编写了这个简单的代码,用代码和密码保存了一个“游戏”object。 我还让它在屏幕上显示游戏键。 运行代码,它可以工作并在屏幕上显示一个看起来像键的东西,但我无法在我的 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 都是异步的。 这包括写入和读取操作。 如果后面需要看资料,推荐看下面这篇文章:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.