Firebase, обновить определенное поле - PullRequest
0 голосов
/ 21 октября 2019

Попытка обновить определенное поле текущей информации о базе данных.

Самое близкое, что я получил, это https://www.programcreek.com/java-api-examples/?class=com.firebase.client.Firebase&method=updateChildren

Но я не могу понять это.

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);

А затем обновить определенное место в моей базе данных. Как имя, от lol до joey, или как там.

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

Обнаружено, что проще было написать:

FirebaseDatabase.getInstance (). GetReference ("users"). Child ("name"). SetValue ("joey");

Поскольку я не собираюсь размещать информацию, учитывая, что пользователи в конечном итоге будут заполнять мою базу данных своими собственными данными.

В противном случае мне, вероятно, придется настроить ее с помощью метода установщика-получателя.

Но для единичных изменений информации это, безусловно, самый простой путь, насколько я знаю.

0 голосов
/ 21 октября 2019

Вы можете использовать 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...