gpt4 book ai didi

android - 如何在 firebase android 中添加新数据

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:53:01 24 4
gpt4 key购买 nike

这是我在 firebase 实时数据库中添加新人的逻辑。但不是创建新条目,它只是用新数据更新旧数据。

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()+"\nAddress: "+person.getAddress()+"\n\n";

//Displaying it on textview
textViewPersons.setText(string);
}
}

@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});

这里有什么问题?谁能帮我解决这个问题?

最佳答案

您总是使用相同的引用

 Person person = new Person();
//Adding values
person.setName(name);
person.setAddress(address);
ref.child("Person").setValue(person);

Check the doc :

Using setValue() in this way overwrites data at the specified location, including any child nodes.

在您的情况下,您正因为这个原因覆盖相同的数据

每次将新的子项添加到指定的 Firebase 引用时,您应该使用 push() 方法生成一个唯一的 ID。

 Person person = new Person();
//Adding values
person.setName(name);
person.setAddress(address);
DatabaseReference newRef = ref.child("Person").push();
newRef.setValue(person);

关于android - 如何在 firebase android 中添加新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37561497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com