我在 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 都是异步的。这包括写入和读取操作。如果以后需要阅读资料,推荐您查看以下文章:
我想知道如何正确使用 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 都是异步的。这包括写入和读取操作。如果以后需要阅读资料,推荐您查看以下文章: