我正在尝试将数据添加到我拥有的Firebase列表中,我觉得我很接近。
public class AddRestaurantActivity extends AppCompatActivity {
private EditText newRestaurant;
private Button addBtn;
private Button homeBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_restaurant);
DatabaseReference mRootRef = FirebaseDatabase.getInstance().getReference();
final DatabaseReference mRestReference = mRootRef.child("restaurants");
newRestaurant = (EditText) findViewById(R.id.addrestauranttext);
addBtn = (Button) findViewById(R.id.addrestaurantBtn);
homeBtn = (Button) findViewById(R.id.HomeButton);
addBtn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {
String newRestaurantName = newRestaurant.getText().toString();
mRestReference.getRoot().setValue(newRestaurantName);
newRestaurant.setText("");
}
});
到目前为止我的代码是什么,当我使用它时,它不起作用。问题是设置新项目。现在它完全取代了我的数据库,因为mRestReference.getRoot()。setValue(newRestaurantName);我需要找到一种方法来添加一个新餐厅,这样它就不会取代数据库中已有的所有内容。参考数据库的图片,看看它是如何设置的。只有一个名为name的属性非常简单。 我是android和编码的新手,所以任何帮助都会很棒。
答案 0 :(得分:0)
有一些错误,请改变它。
addBtn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {
String newRestaurantName = newRestaurant.getText().toString();
DatabaseReference newResturantRef = mRestReference.push();
newResturantRef.child("name").setValue("Taco Bell");
//also store the key of student, so that you can refer it later
newResturantRef.child("studentKey").setValue(newResturantRef.getKey());
}
});
让我知道它是怎么回事。