>

내 앱은 사용자에게 매일 1-6 개의 값을 평가하도록 요청합니다. 각 사용자마다 하나의 문서에 저장합니다. 간단한 차트보기를 만들고 x 축에 사용자 비율을 나타내는 그래프를 표시하고 싶습니다.

내 문제는 :

문서에서 값을 가져 오면 앱을 열 때마다 임의의 방식으로 값을 반환합니다.

아래 첨부 된 사진에서 코드와 그것이 반환하는 배열을 볼 수 있습니다.

Code

Result

  • 답변 # 1

    일반적으로 Firebase/Firestore는 사전에서 찾을 수있는 것과 같은 키 : 값 쌍에 크게 의존합니다.

    사전은 순서가 없습니다 ... 그래서 이것

    document?.data()
    
    

    데이터가 포함되어 있지만 데이터는 순서가 없으며 읽기에 따라 다릅니다.

    순서를 보장하는 한 가지 옵션은 값을 배열에 저장하는 것입니다.

    Firestore 구조가 무엇인지 모르지만 배열을 포함하는 여러 필드가있는 문서가 있다고 가정합니다

    arrays // collection
       array_doc_0 //document
          array_0    /field
             0: 1
             1: 2
             2: 3
          array_1
             0: 4
             1: 5
             2: 6
    
    

    에있는 것들을 읽고 콘솔에 출력하려면 다음 코드를 보자. 배열의 내용은 항상 배열 색인에 의해 보장되는 올바른 순서로되어 있습니다.

    func readSomeArrays() {
        let arraysCollection = self.db.collection("arrays")
        let thisArrayDoc = arraysCollection.document("array_doc_0")
        thisArrayDoc.getDocument(completion: { documentSnapshot, error in
            if let err = error {
                print(err.localizedDescription)
                return
            }
            guard let doc = documentSnapshot?.data() else { return }
            for arrayField in doc {
                let array = arrayField.value as! [Int]
                for i in array {
                    print(i)
                }
            }
        })
    }
    
    

    와 출력

    [4, 5, 6]
    [1, 2, 3]
    
    

    배열 _1이 array_0보다 먼저 인쇄되었습니다. 이는 documentSnapshot.data ()가 정렬되지 않은 '사전'이기 때문에 반복됩니다. 순서가 중요한지 확실하지 않지만, 필요한 경우 배열을 배열에 저장하거나 고유 한 인덱스를 작성하고 코드를 정렬하십시오.

  • 답변 # 2

    예제에서 sort 를 사용할 수 있습니다.   data array 에서  그것을 읽기 전에.
    다음과 같이 :

    data.sort()

    애플의 샘플 :

    var students = ["Kofi", "Abena", "Peter", "Kweku", "Akosua"]
    students.sort()
    print(students)
    // Prints "["Abena", "Akosua", "Kofi", "Kweku", "Peter"]"
    
    

    출처 : https://developer.apple.com/documentation/swift/array/1688499-sort

  • 이전 Scrapy Splash는 루아 스크립트를 실행하지 않습니다
  • 다음 python - 케 라스 모델의 학습 속도 얻기