本文介绍了如何在firebase android中添加新数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我在 firebase 实时数据库中添加新人的逻辑.但它只是用新数据更新旧数据,而不是创建新条目.
This is my logic for adding new person in firebase realtime databse. But instead of making a new entry it is just updating the old data with new one.
buttonSave.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
/*
new Firebase(Config.FIREBASE_URL)
.push()
.child("title")
.setValue(text.getText().toString());
*/
Firebase ref = new Firebase(Config.FIREBASE_URL);
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);
ref.child("Person").setValue(person);
}
});
new Firebase(Config.FIREBASE_URL).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
//Getting the data from snapshot
Person person = postSnapshot.getValue(Person.class);
//Adding it to a string
String string = "Name: "+person.getName()+"
Address: "+person.getAddress()+"
";
//Displaying it on textview
textViewPersons.setText(string);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});
这里有什么问题?有人可以帮我吗?
What is wrong here? Can anyone help me on this?
推荐答案
您总是使用相同的参考
Person person = new Person();
//Adding values
person.setName(name);
person.setAddress(address);
ref.child("Person").setValue(person);
检查文档:
以这种方式使用 setValue() 会覆盖指定位置的数据,包括任何子节点.
在您的情况下,由于这个原因,您覆盖了相同的数据.
In your case you are overriding the same data for this reason.
每次将新子项添加到指定的 Firebase 引用时,您都应该使用 push()
方法生成唯一 ID.
You should use the push()
method to generate a unique ID every time a new child is added to the specified Firebase reference.
Person person = new Person();
//Adding values
person.setName(name);
person.setAddress(address);
DatabaseReference newRef = ref.child("Person").push();
newRef.setValue(person);
这篇关于如何在firebase android中添加新数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!