2015-05-02 18 views
6

Đây có thể là một câu hỏi khá cơ bản, nhưng cho đến nay tôi không thể tìm thấy câu trả lời cho vấn đề của mình trực tuyến sau nhiều lần googling. Tôi có một ứng dụng web firebase nơi cấu trúc dữ liệu khá đơn giản. Ban đầu, nó là trống rỗng, như thế này:Thêm cặp giá trị khóa mới vào Firebase

fireRef { 
} 

Tôi muốn có thể để thêm cặp giá trị quan trọng mà quan trọng là tạo ra bởi người sử dụng và giá trị chỉ là một số văn bản. Ví dụ: người dùng sẽ nhập tên của họ làm khóa và giá trị theo tuổi của họ. Sau đó, tôi muốn gửi dữ liệu đến máy chủ và có căn cứ hỏa lực bây giờ nhìn như thế này:

fireRef { 
    John : 25, 
} 

tôi có thể hoàn thành một bổ sung này với:

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

Tuy nhiên, tôi muốn nhiều người để có thể để làm điều này. Khi tôi cố gắng thêm người mới vào máy chủ, cặp "John: 25" cũ chuyển sang màu đỏ và biến mất, chỉ để lại cặp giá trị khóa mới.

Làm cách nào để giữ nguyên cả hai và duy trì tập dữ liệu của một loạt các cặp khóa, giá trị?

+0

Nếu bạn đang sử dụng SDK JavaScript cho Firbase, bạn chỉ có thể gọi phương thức với các thông số tương tự cập nhật(). –

Trả lời

9

Id duy nhất trong Firebase được tạo khi chúng tôi push dữ liệu.

Ví dụ:

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

Một cách khác là để trực tiếp thiết lập các phần tử con:

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

Lưu ý rằng trong ví dụ đầu tiên của bạn, bạn cũng có thể chỉ đơn giản là 'fireRef.push ({'name': 'fred', 'age': '32'});' – Marein

+0

@Marein Cảm ơn bạn đã thông tin, sẽ sử dụng nó tiếp theo thời gian – learningloop

2

@ user3749797, tôi đã nhầm lẫn với vấn đề này chính xác.

@learningloop cung cấp giải pháp tốt, vì nó đạt được nhiệm vụ thêm dữ liệu vào cơ sở lửa của bạn, nhưng có một tùy chọn để thêm cặp k, v (tên, tuổi) mới vào một mảng kết hợp JSON đơn chứ không phải đẩy đến một mảng các mảng kết hợp. Một cách hiệu quả, @learningloop thấy:

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

Có lẽ theo cách của mình là tốt hơn, nhưng bạn và tôi đang tìm kiếm này:

{ steve: 34, mary: 22 }

tôi đã quản lý để thêm vào danh sách này của k , cặp v với

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

yielding

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

Trong căn cứ hỏa lực của tôi.

tài liệu hướng dẫn đầy đủ về tiết kiệm đến căn cứ hỏa lực [here]

Các vấn đề liên quan