나는Firebase Firestore Reference 데이터 유형을 쿼리하는 방법은 무엇입니까?
사용자 참조
사용자 컬렉션을 아래의 스크린 샷과 같이 사용자에 대한 참조를 저장하는 경우 FireStore reference 데이터 형식을 사용하고
이 데이터를 쿼리하려고하면 ClassCastException
이 표시됩니다 (이 때문에 String
으로 캐스팅을 시도했습니다).
코드
//.. this function reads data from DocumentSnapshot
//.. and converts to an Organization
private fun DocumentSnapshot.toOrganization(): Organization {
//.. some code
(this.data["members"] as ArrayList<HashMap<String, Any>>).map { toOrgMember(it) })
//.. more code
}
fun toOrgMember(map: Map<String, Any>): OrgMember {
//map["user"] as String throws ClassCastException. Refer first screenshot
return OrgMember(map["id"] as Long, UserRef(map["user"] as String), map["type"] as String,
asJobTitlesList(map["jobTitles"] as String))
}
스택 트레이스 어떤 클래스 I는 참조 데이터 유형을 캐스팅해야하기
10-14 20:31:17.503 15569-15569/com.a.b W/System.err: Caused by: java.lang.ClassCastException: com.google.android.gms.internal.zzegf cannot be cast to java.lang.String
10-14 20:31:17.504 15569-15569/com.a.b W/System.err: at feature.model.core.CoreUtilsKt.toOrgMember(CoreUtils.kt:28)
10-14 20:31:17.504 15569-15569/com.a.b W/System.err: at feature.model.organization.OrgRemoteKt.toOrganization(OrgRemote.kt:55)
? (com.google.android.gms.internal.zzegf
은 사용할 수없는 내부 클래스처럼 보입니다)
현재로서는 참조 유형으로 docs에서 예제를 찾지 못했습니다. 도움이 될 것입니다.
내가 요청한대로 코드를 추가했습니다. 희망이 도움이됩니다. –