2016-10-15 2 views
11

데모 어플리케이션 용 데이터 준비를 위해 Firebase 콘솔을 사용하고 있습니다. 데이터 항목 중 하나가 참석자입니다. 참석자는 배열입니다. Firebase에 배열로 몇 명의 참석자를 추가하고 싶습니다. Firebase에는 배열이 없지만 키가있는 객체는 (시간 순서대로) 이해합니다. 샘플 데이터를 준비하려면 어떻게해야합니까? 현재 사용중인 Firebase 데이터는 다음과 같습니다. enter image description hereFirebase 콘솔을 사용하여 Firebase에서 배열 설정

답변

35

Firebase 데이터베이스는 어레이를 저장하지 않습니다. 사전/연관 배열을 저장합니다. 가장 가까운 곳은 다음과 같습니다 :

attendees: { 
    0: "Bill Gates", 
    1: "Larry Page", 
    2: "James Tamplin" 
} 

이 구조는 Firebase 콘솔에서 빌드 할 수 있습니다. Firebase SDK 중 하나를 사용하여 읽으면 어레이로 변환됩니다.

이 결과가 도움이 될 수 있습니다. 그러나 배열을 저장하지 않으면 Firebase가 선호하는 이유에 대한 블로그 게시물 (https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html)을 읽는 것이 좋습니다. 당신이 실제로

대부분의 개발자가 실제로 배열을 저장하려고하지 않는 내가 귀하의 경우 그 중 하나가 될 것 같아요 세트를 필요로 할 때

는 배열을 사용하지 마십시오. 예 : "빌 게이츠"가 참석자가 될 수 있습니까?

attendees: { 
    0: "Bill Gates", 
    1: "Larry Page", 
    2: "James Tamplin", 
    3: "Bill Gates" 
} 

그렇지 않은 경우 추가하기 전에 그가 이미 배열에 있는지 확인해야합니다.

if (!attendees.contains("Bill Gates")) { 
    attendees.push("Bill Gates"); 
} 

이것은 데이터 구조가 유스 케이스에 대해 최적이 아님을 나타내는 명확한 신호입니다. 새로운 자식을 추가하기 전에 기존의 모든 자식을 검사하면 확장 성이 제한됩니다.

이 경우 실제로 원하는 것은 세트입니다. 각 어린이가 한 번만 표시 될 수있는 데이터 구조입니다.

attendees: { 
    "Bill Gates": true, 
    "Larry Page": true, 
    "James Tamplin": true 
} 

을 그리고 지금 당신은 빌 게이츠를 두 번째를 추가하려고 할 때마다, 그것은 어떤 조합 없습니다 : 중포 기지에서이 같은 세트를 모델 고유성에 대한 코드해야하는 그래서 그 대신

attendees["Bill Gates"] = true; 

데이터 구조는 암시 적으로이를 해결합니다.

+0

function jamToArray(snapshot) { const returnArr = []; snapshot.forEach(function(childSnapshot) { const item = childSnapshot.val().time; returnArr.push(item); }); return returnArr; }; firebase.database().ref('sensor').limitToLast(10).on('value', function(snapshot) { const jam = jamToArray(snapshot); });

은 불가능합니다. 나는 세트를 사용하거나 앱에서 푸시를 수행 할 것이다. 감사. – vijayst

+0

그래서 Firebase 콘솔을 사용하여 배열을 채울 수 있습니까? –

3

다른 답변을 작성한 후 콘솔에 밀어 넣기 ID를 추가하는 방법을 찾고있을 수도 있다는 것을 깨달았습니다.

지금은 기능이 아닙니다. 대부분의 경우 테스트 데이터를 입력 할 때 다른 유형의 키를 사용하거나 키를 생성하고 복사/붙여 넣기하기 위해 다른 탭에 작은 자바 스크립트 스 니펫이 있습니다.

here의 기능을 요청하십시오. 처음 질문하는 사람은 분명하지 않으므로.

0

firebase array? 예, 몇 주 전에 같은 문제가 있었는데, here에서 발견되었습니다. 마지막으로 ChartJS에서 사용할 수 있습니다.콘솔에서 ID를 밀어 순간

관련 문제