파파비의 블로그

플러터, flutter) Firebase 데이터 보내기 & 읽기 심화편 본문

개발/flutter

플러터, flutter) Firebase 데이터 보내기 & 읽기 심화편

N. Dave 2020. 6. 11. 13:42
반응형

 

객체 리스트 전부를 저장하기

map, list는 json format이 가능하다.

만약 우리가 만든 오브젝트들의 리스트를 firebase에 저장하고 싶다면

그 오브젝트 각각을 map으로 변환 시켜야한다.

 

리스트는 .map이라는 메소드가 있다. 리스트의 모든 원소들을 한번씩 돌리면서

새로운 iterable<T>를 만들어낸다.

 

우리는 .map을 이용하면 각 객체들을 map으로 바꾼 List를 만들어낼 수 있다.

이러면 json화가 가능하고, 그대로 firebase에 저장이 가능해진다.

 

 

Time은 ToString()보다, 변환이 편리한 ISO tostring으로

DateTime은 그대로 json화가 되지 않는다. 그래서 string으로 변환이 필요한데,

ToString보다 dateTime으로 변환이 편리한 Iso8601String()을 써주면 된다.

 

 

 

내부에 데이터저장과 서버저장 어떤 것을 먼저해야할까?

답부터 말한다.

"서버 저장 먼저 해야 한다"

지금 여기 코드를 보면 orderitem의 id값은 DateTime으로 쓰고 있다. 우린 이것을 안 쓸 것이다.

서버에서 저장할 때 알아서 생기는 고유한 값을 사용하고 싶다.

저 M으로 시작하는 이상한 key 저것을 id로 쓰고 싶다.

그러면 당연히 서버에 저장을 먼저해야 저것이 생기는것 아니겠는가?

 

그럼 저 Key 값은 어떻게 얻을까?

 

post의 경우 response로 map 이 날라오고 key가 name인 것의 value가 저 긴 key가 온다

따라서 위에 코드처럼 내부저장 후 서버저장이 아니라

서버 저장 후 key값 받아서 내부저장까지 해주면 완벽하다.

 

이렇게 하는데, response 값은 아직 raw하고, 그래서 decode를 해주어야 한다.

절대 잊지마라... 계속 까먹는다..

 

반응형
Comments