2016-09-18 1 views
1

값 : 나는 에 동시에이 구조에 값을 추가 할중포 기지 업데이트 목록이 자료 구조가

categories 
     0 : category1, 
     1 : category2, 
     2 : category3 

. updateChildren() 메서드는 list를 새로운 것으로 대체합니다.

 Map<String, Object> childUpdates = new HashMap<>(); 
    FirebaseDatabase.getInstance().getReference().updateChildren(childUpdates); 

이것을 구현하는 가장 좋은 방법은 무엇입니까?

+0

당신이 동시에 강조 무엇을 의미합니까? 동시에 모든 항목을 업데이트 할 필요없이 개별 범주의 이름을 업데이트하기를 원하십니까? –

+0

@BooberBunz idk,하지만 그는 데이터 구조가 섞여 있다고 확신합니다. –

+0

@BooberBunz 여러 사용자가이 데이터 구조에 항목을 추가하거나 제거 할 수 있습니다. – dmreshet

답변

2

나쁜 습관. (이유를 알아 보려면 here) 및을 (를) 확인하십시오. 0:, 1: 등을 사용하는 대신 Firebase push() 방법을 사용하십시오. -K9929EDDJDODAK939과 같은 고유 키를 생성합니다. 귀하의 구조는 다음과 같이 표시됩니다

ref.child("categories").push().setValue(valueOrHasMap); 

당신은 updateChildren()를 사용할 필요가 없습니다 그냥 저장이 같은 데이터베이스에 사람들을 저장할 때 이것에

categories: 
    -K9929EFDADFAK939: category 1, 
    -DFADF9ADFFDF: category 2, 
    K99DF9EDDJDO9: category 3 

에서, push() 방법을 사용 나는 언급했다. 그것은 저축을 계속할 것이며 기존의 것을 대체하지 않을 것입니다.

자세한 내용을 보려면 docs을 읽고 특히이 방법을 사용할 때는 retrieve data을 읽어야합니다. 중포 기지에서 배열을 피하는 방법에 대한 자세한 내용은

: (링크에 대한 @Wiliks 주셔서 감사합니다) Best Practices: Arrays in Firebase

+2

firebase 데이터베이스 [Best Practices : Firebase의 배열] (https://firebase.googleblog.com/2014/04/best-practices-arrays-in-home.html)에서 배열을 피하는 이유에 대한 오래된 공식 블로그 게시물에 대한 링크를 남깁니다. firebase.html) – Wilik

+0

@Wilik 귀하의 협력을 위해 귀하의 링크를 포함시킬 것입니다. –

0

당신은 너무 당신의 0, 1, 2, 3, 등이 INDEXES 및 키 - 값 쌍의하지 열쇠 데이터 구조를 변경해야합니다 ... 그래서처럼 보일 것입니다 : 그

categories: 
     0: 
      name:category1, 
     1: 
      name:category2, 
     2: 
      name:category3 
+0

이것은 문서에서 말한 것처럼 나쁜 습관입니다. –

+0

질문에 대한 오해를 한 적이 있습니까? –

+0

@AbAppletic 귀하의 답변은 본질적으로 동일합니다. 내 포인트는 색인 생성 대 색인 생성되지 않았습니다. 나는 인덱스가 사실상 "0" "1"또는 "2"로 불릴 필요가 있다고 말한 적이 결코 없다. –