尝试在Firebase上更新当前信息的特定字段。
但是我似乎无法弄清楚。
package com.example.updatefirebase;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private DatabaseReference databaseReference;
private FirebaseDatabase firebaseDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Connects to my database.
databaseReference = FirebaseDatabase.getInstance().getReference("users");
HashMap<String, String> userMap = new HashMap<>();
userMap.put("name", "lol");
userMap.put("image", "321321");
userMap.put("image_thumbnail", "default");
//Trying to write to root file.
// databaseReference.setValue(userMap);
Map<String, Object> mapaCompleto = new HashMap<>();
mapaCompleto.put(lol, userMap);
//Update firebase.
databaseReference = FirebaseDatabase.getInstance().getReference("users").updateChildren(mapaCompleto);
}
}
我想做的是我的databaseReference.setValue(userMap);
然后更新数据库中的特定位置。就像名字一样,从哈哈到乔伊,等等。
答案 0 :(得分:0)
您可以使用updateChildren()
:
HashMap<String, Object> userMap = new HashMap<>();
userMap.put("name", "joey");
userMap.put("image", "321321");
userMap.put("image_thumbnail", "default");
databaseReference.updateChildren(userMap);
updateChildren()
将更新特定字段,而不会覆盖其他子节点。
您可以在以下链接中找到更多信息:
https://firebase.google.com/docs/database/android/read-and-write#update_specific_fields
答案 1 :(得分:-1)
发现编写起来更容易:
FirebaseDatabase.getInstance()。getReference(“ users”)。child(“ name”)。setValue(“ joey”);
由于我将不会放置这些信息,因此最终用户将用自己的东西填写我的数据库。
否则,我可能必须使用getter setter方法进行设置。
但是对于单个信息更改,到目前为止,这是最简单的,因为我确实知道该路径。