2016-05-04 17 views
14

Đây là cơ sở dữ liệu của tôicăn cứ hỏa lực thêm con mới với tên cụ thể

enter image description here

Tôi muốn thêm người dùng mới đến cơ sở dữ liệu giữ định dạng đó. Tôi đã thử điều này:

//Store data in database 
    Firebase usersRef = ref.child("Users"); 
    Map<String, String> userData = new HashMap<String, String>(); 

    userData.put("Nombre", name); 
    userData.put("Password", pass); 
    userData.put("Confirmed", "FALSE"); 
    userData.put("Email", mail); 

    usersRef.setValue(name); 
    usersRef = ref.child("Users").child(name); 
    usersRef.setValue(userData); 

Vấn đề là bất cứ khi nào tôi thêm người dùng mới, người dùng trước đó sẽ bị ghi đè.

+0

tôi có thể có ví dụ đầy đủ về cách tạo cơ sở dữ liệu như vậy không? –

Trả lời

11

Nó xảy ra bởi vì bạn đang sử dụng:

Firebase usersRef = ref.child("Users"); 
usersRef.setValue(name); 

Bằng cách này bạn sẽ đẩy giá trị trong url/Users loại bỏ các giá trị trước đó.

Kiểm tra doc:

Sử dụng setValue() sẽ ghi đè lên dữ liệu ở vị trí quy định, bao gồm bất kỳ nút con.

Để thêm người dùng mới mà không cần tháo trước đó, chỉ cần loại bỏ dòng này:

//usersRef.setValue(name); 

Bằng cách này bạn sẽ đẩy giá trị trong url/Users/myName mà không trọng giá trị khác.

+1

Cảm ơn. Tôi nên sử dụng gì sau đó? – Aldridge1991

+0

@ Aldridge1991 Đã cập nhật câu trả lời –

4

Firebase Database Push

[FirebaseDatabase mydb =][2] FirebaseDatabase.getInstance(); 
DatabaseReference mDatabase = mydb.getReference().child("Dealers").child(dealerId).child("Stock").child(stockAddDate); 

Map<String, String> userData = new HashMap<String, String>(); 

userData.put("Product_Name", productName); 
userData.put("Holding_Stock", holdingStock); 
userData.put("Primary_Stock", primaryStock); 
mDatabase.push().setValue(userData); 

Chỉ cần sử dụng "PUSH" trước setValue.

+1

là gì -klaxOUQNJjWf0OaF-77 và cách tránh giá trị này? –

+0

-klaxOUQNJjWf0OaF-77 là ID đẩy như ID mysql ... –

1

Điều này phù hợp với tôi. Tôi đang sử dụng lớp mô hình thay vì Hash

mFirebaseDatabase.child(name); 
mFirebaseDatabase = mFirebaseDatabase.child(name); 
FirebaseDatabase.setValue(name); 
FirebaseDatabase.setValue(user); 
Các vấn đề liên quan