2017-10-23 9 views
0

내 코드를 최적화하는 데 도움이되기를 바랬습니다. 나는 새로운 개발이기 때문에 친절하시기 바랍니다.Firebase 쿼리가 느린 코드 실행 : 테이블에 추가

현재 작동하지만 꽤 많은 시간 (10-15 초)을 사용하여 앱에 필요한 첫 번째 테이블보기를로드합니다. 처음에는 "지속성"을 올바르게 활성화하지 않았다고 생각했지만 데이터가 부적절한 데이터를로드하는 방법이라고 생각하기 시작했습니다.

"큰"(12k + 항목) 데이터 세트를 사용하면 자주 변경되지 않으므로 이상적인 솔루션은 한 번로드 한 다음 변경 사항을 수신하는 것입니다. 그게 내가하고있는 일이라고 생각했는데 왜 그렇게 느린지 이해가 안되니? 이제는 "어딘가에있는 지역"에서 "읽기/로딩"대신 매번 데이터를 추가하는 방식으로 의심되는 부분이 있는지 확인한 후 변경 내용을 수신 대기 중입니까? 어떤 도움이

//read From Firebase adjusted to whiskies 
func startObservingDB() { 
    dbRef.queryOrdered(byChild: "brand_name").observe(.value, with: { (snapshot:FIRDataSnapshot) in 
     var newWhisky = [WhiskyItem]() 

     //forloop to iterate through the snapshot 

     for whiskyItem in snapshot.children { 
      let whiskyObject = WhiskyItem(snapshot: whiskyItem as! FIRDataSnapshot) 
      newWhisky.append(whiskyObject) 
     } 

     //update 
     self.whiskies = newWhisky 
     print("WhiskyItem") 
     self.tableView.reloadData() 

    }) { (error: Error) in 
     print(error.localizedDescription) 
    } 
} 

을 감사

중포 기지 구조 :/결과/인덱스/이름 : XXX "다른 thing1"XXXX, ..., "다른 thing32"나는 'XXXX

+0

당신은 페이지 매김이라고하는 것을 찾고 있습니다. – DoesData

답변

1

확실치 않아, 12 000 개의 모든 항목을 휴대 전화에 저장하는 것이 좋습니다.

(예)

100 개의 행

2

에 대한

1) 데이터를로드) 스크롤 :

당신이 lib에 사용할 수 있습니다 :

는 당신을 위해 좋은 솔루션이 될 것입니다 수 있음 끝까지

3) 다른 100 개의 행을로드합니다.

희망 하시겠습니까?

관련 문제