2016-11-27 3 views
0

Мне удалось загрузить новую информацию и вызвать ее в базе данных, но я искал несколько дней, и я не могу найти ничего.Обновите и добавьте новые дочерние узлы Firebase в веб-приложении Firebase одновременно

Я ищу, чтобы иметь возможность обновлять узел, который уже имеет значение и добавить новый узел, если он этого не делает. Кто-нибудь может мне с этим помочь. Новое для Firebase.

Благодаря

код:

function userProfileUpdate(users) { 

       newUsername = document.getElementById("newUsername"); 

       // Profile Update. 
       var user = { 
       username : newUsername.value 
       }; 

       return firebase.database().ref().update(user); 
      }; 
+0

Добавление данных должно быть таким же простым, как 'ref.setValue ({name:" user3411711 "})'. Похоже, вы уже что-то пробовали. Если вы делитесь [минимальным кодом, который воспроизводит, где вы застряли] (http://stackoverflow.com/help/mcve), вам будет легче помочь. –

+0

Да, я попробовал несколько методов. – user3411711

+0

Спасибо за обновление. В чем проблема с этим кодом? Это работает? Прошли ли вы через него в отладчике? Есть ли ошибки в консоли JavaScript? –

ответ

1

Из ваших комментариев, кажется, что вы хотите хранить информацию о пользователях в структуре данных, как это:

users 
    uid1 
     userName: "Frank van Puffelen" 

Для добавления конкретного пользователя в эту структуру, вы бы сделали:

function userProfileUpdate(users) { 
    var user = firebase.auth().currentUser; 
    var root = firebase.database().ref(); 

    newUsername = document.getElementById("newUsername"); 

    var user = { 
     username : newUsername.value 
    }; 

    return root.child('users').child(user.uid).set(user); 
}; 

Update

Для update a specific property of a specific user:

Map<String, Object> updates = new HashMap<String,Object>(); 
updates.put("username", newUsername.value); 
root.child('users').child(user.uid).updateChildren(user); 

Или же:

root.child('users').child(user.uid).child("username").setValue(newUsername.value); 

И будет автоматически создать место, если он еще не существует.

+0

Да, структура правильная. Я получаю эту ошибку: Firebase.child не удалось: первый аргумент был недопустимым путем: «undefined» с вашим обновленным кодом. – user3411711

+0

Dont знать, если это имеет значение, но мое имя пользователя вместо userName – user3411711

+0

Скорее всего 'user.uid' не определен в вашем сценарии. Пройдите код в отладчике и проверьте, имеет ли значение 'user', и если да, то что это за' user.uid'. Stack Overflow - это отвратительный механизм для удаленной отладки. –

1

Фрэнк код забрал весь ключ, но я сделал рисунок с этим

var user = firebase.auth().currentUser; 
     var root = firebase.database().ref(); 

     newUsername = document.getElementById("newUsername"); 

     firebase.database().ref('users/' + user.uid).update({ 
      username: newUsername.value 
      }); 

Спасибо Фрэнк ваш толкать меня в правильном направлении.