我从here获得了Firebase Android教程,并按照本教程中的每一步操作。但是,当我单击创建button
并刷新firebase
时,我得到的数据库数据始终为空。
有人可以帮我弄清楚问题是什么吗?
这是我的firebase
Config.java
public class Config {
public static final String FIREBASE_URL = "https://healthy-app-30d65.firebaseio.com/";
}
注册
public class Register extends AppCompatActivity {
EditText editTextName;
EditText editTextAddress;
TextView textViewPersons;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
Firebase.setAndroidContext(this);
Button buttonSave = (Button) findViewById(R.id.buttonSave);
editTextName = (EditText) findViewById(R.id.editTextName);
editTextAddress = (EditText) findViewById(R.id.editTextAddress);
textViewPersons = (TextView) findViewById(R.id.textViewPersons);
//Click Listener for button
buttonSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Creating firebase object
Firebase ref = new Firebase(Config.FIREBASE_URL);
//Getting values to store
String name = editTextName.getText().toString().trim();
String address = editTextAddress.getText().toString().trim();
//Creating Person object
Person person = new Person();
//Adding values
person.setName(name);
person.setAddress(address);
//Storing values to firebase
ref.child("Person").setValue(person);
}
});
}
}
答案 0 :(得分:2)
您正在使用为旧版Firebase控制台(firebase.com)和SDK版本(2.x)编写的教程。但您的Firebase项目是在新的Firebase控制台(firebase.google.com)上创建的。
虽然大多数API将继续有效,但在这里有一些差异:
在新控制台上创建的项目配置为仅允许经过身份验证的用户进行读/写。 (暂时)解决此问题的最简单方法是阅读first note in blue on this documentation page。这解释了如何使您的数据库再次可读/可写。
Firebase 2.x SDK中的身份验证不适用于在新Firebase控制台上创建的项目。
所以#1可能是一个很好的快速解决方法,但你真的应该采用更新的教程,例如其他答案中建议的那些。
答案 1 :(得分:0)
我建议你按照最新的firebase样本。您可以在Google Firebase Codelab
找到分步设置和示例项目例如,更新存储值到实时数据库
从ref.child("Person").setValue(person);
到ref.child("Person").push().setValue(person);
答案 2 :(得分:0)
新的Firebase与旧版代码(https://wwww.firebase.com)不兼容,您必须将Android项目设置为最新的SDK。您可以参考此link了解如何迁移数据库代码。