2015-05-02 18 views
6

Questa potrebbe essere una domanda piuttosto semplice, ma finora non riesco a trovare la risposta al mio problema online dopo molte ricerche su google. Ho un'app web di Firebase in cui la struttura dei dati è piuttosto semplice. Inizialmente, è vuota, in questo modo:Aggiungere una nuova coppia di valori chiave a Firebase esistente

fireRef { 
} 

Voglio essere in grado di aggiungere coppie chiave valore in cui la chiave viene creato dall'utente e il valore è solo una parte di testo. Ad esempio, l'utente inserirà il suo nome come chiave e il valore come età. Poi Voglio inviare i dati al server e hanno la Firebase apparire così:

fireRef { 
    John : 25, 
} 

posso raggiungere questo un'aggiunta con:

var name = getUserName(); 
var age = getUserAge(); 
var node = {}; 
node[name] = age; 
fireRef.set(node); 

Tuttavia, voglio più persone di essere in grado per fare questo. Quando provo ad aggiungere una nuova persona al server, la vecchia coppia "John: 25" diventa rossa e scompare, lasciando solo la nuova coppia di valori chiave.

Come posso mantenere entrambi in giro e mantenere un set di dati di un gruppo di coppie chiave, valore?

+0

Se si sta utilizzando l'SDK JavaScript per Firbase, si può semplicemente chiamare il metodo update() con gli stessi parametri. –

risposta

9

L'ID univoco in firebase viene generato quando abbiamo dati push.

Ad esempio:

var fireRef = new Firebase('https://<CHANGE_APP_NAME>.firebaseio.com/fireRef'); 
var newUserRef = fireRef.push(); 
newUserRef.set({ 'name': 'fred', 'age': '32' }); 

Un altro modo è quello di impostare direttamente gli elementi figlio:

var fireRef = new Firebase('https://<CHANGE_APP_NAME>.firebaseio.com/fireRef'); 
fireRef.child(1).set({'name':'user2','age':'34'}); 
fireRef.child(2).set({'name':'user3','age':'24'}); 
+0

Nota che nel tuo primo esempio puoi anche fare semplicemente 'fireRef.push ({nome ':' fred ',' age ':' 32 '});' – Marein

+0

@Marein Grazie per le informazioni, lo useremo dopo tempo – learningloop

2

@ user3749797, mi sono confuso con questo problema esatto.

@learningloop ha offerto una buona soluzione, perché consente di aggiungere dati al tuo firebase, ma c'è un'opzione per aggiungere una nuova coppia k, v (nome, età) in un singolo array associativo JSON anziché premere a una serie di array associativi. Effettivamente, @learningloop vede:

[{ name: steve, age: 34 }, { name: mary, age: 22 }]

Forse il suo modo è meglio, ma tu e io stavamo cercando questo:

{ steve: 34, mary: 22 }

Sono riuscito a aggiungere a questa lista di k , v coppia con

var fireRef = new Firebase('https://<CHANGE_APP_NAME>.firebaseio.com/fireRef'); fireRef.update({ 'jobe': '33'});

Yielding

{ steve: 34, mary: 22, jobe: 33 }

Nel mio firebase.

La documentazione completa sul risparmio di Firebase [here]

Problemi correlati