2017-02-06 1 views
0

다음과 같이 도와 주시면 감사하겠습니다 :사용자 지정 키를 사용하여 데이터베이스에 데이터를 저장하는 방법?

필자는 이오닉 2 프로젝트를 보유하고 있으며 Firebase 데이터베이스에 사용자 정의 키를 사용하여 오브젝트를 저장하는 방법을 알아야합니다.

사실, 중포 기지에서 내가 가진 :

- users : 
      - 232ssadas223ss2 : { 
        + last_audio: {} 
        + sessions : [] 
      } 
      - das112dasd21dsd : { 
        + last_audio: {} 
        + sessions : [] 
      } 

      . 
      . 
      . 

이 내가 '방법입니다

+ blabla 
+ blabla 
- users : 
    - UIDXXX : { 
     + last_audio: {} 
     + sessions : [] 
    } 

글쎄, 대신 문자열 UIDXXX, 내가 예를 들어 키와 사용자의 UID를 저장해야 실제로 데이터를 가져 오는 중 :

this.auth.subscribe((user) => { 
    if (user) { 
     let firebaseObservable = this.angularFire.database.object(`/users`); 
     firebaseObservable.update({ 
      useruid : { 
       last_audio: this.audio, 
       sessions: [ 
        "Hoy", 
        "Ayer" 
       ] 
      } 
     }); 
    } 
}); 

하지만 분명히 user.uid가 아닌 userid라는 단어를 저장하고 있습니다. Firebase에서 나는 다음과 같이 나타납니다 :

users : 
- useruid : { 
    + last_audio: {} 
    + sessions : [] 
} 

대단히 감사합니다.

답변

1

당신은 소위 브라켓 표기법으로 오브젝트에 데이터를 설정할 수 있습니다 : 그것은 가능성이 더 나은 당신이 저장하는지 반영하기 때문에

let firebaseObservable = this.angularFire.database.object(`/users`); 
    var updates = {}; 
    updates[userid] = { 
      last_audio: this.audio, 
      sessions: { 
       "Hoy": true, 
       "Ayer": true 
      } 
     }; 
    firebaseObservable.update(updates); 

는 또한, 세트에 sessions 배열을 변경했습니다. 배열 대 대 집합에 대한 자세한 내용은 여기 내 대답을 참조하십시오 : Firebase query if child of child contains a value

+0

나는 당신을 사랑합니다, 당신은 내 하루를 저장! 그것은 작동합니다! 나는 이것에 대해 몰랐다. 문제가있는 경우 문제가 아니라면 상담해 드리겠습니다. 감사합니다. :) –

+0

이 이반이 효과가 있다는 이야기를 듣기 좋습니다. –

+0

사실 세션 내에서 날짜를 저장해야합니다. 테스트하기 위해 문자열을 넣었고이를 바로 잡는 것을 잊어 버렸습니다. 세션은 실제로 "Hoy", "Ayer"대신 "2017-06-02", "2017-05-02"와 같은 데이터를 저장합니다. 나는 당신이 나를 교정 한 점을 분명히하고 있습니다.이 맥락에서 그렇게하는 것이 좋은 생각입니까? –

관련 문제