Можно ли получить доступ к значению поля в одной коллекции из другой коллекции в firestore? - PullRequest
0 голосов
/ 09 марта 2019

Можно ли получить доступ / передать значение поля (в данном случае имя игровой комнаты) коллекции Allusers из / в другую коллекцию (в данном случае игровые комнаты)?

, чтобы я мог сделать ниже:

ref.collection("GameRooms").document(gameroomname).addSnapshotListener(){
}

Скриншот Allusers: enter image description here

Скриншот игровых комнат:

enter image description here

Послепытаясь, приведенный ниже код работает. Но это правильный способ сделать это или есть какой-либо способ лучше:

 mFirestore.collection("AllUsers").document(SplitString(currentUser.email!!)).get().addOnSuccessListener(OnSuccessListener<DocumentSnapshot> { documentSnapshot ->
            var gameRoomName: String = ""
            if (documentSnapshot.exists()) {
                gameRoomName = documentSnapshot.getString("gameroomname")!!
            }
            mFirestore.collection("GameRooms").document(gameRoomName).collection("Words called").addSnapshotListener(EventListener<QuerySnapshot>(){ queryDocumentSnapshot, e->
                selectedWordsList.clear()
                if (!queryDocumentSnapshot!!.isEmpty) {
                    val gameRoomList = queryDocumentSnapshot.documents
                    for (doc: DocumentSnapshot in gameRoomList) {
                        var addWord: String = ""
                        if (doc.get("addword") != null) {
                            addWord = doc.get("addword").toString()
                        }
                        val selectedGameRoomList: SelectedWordsObject = SelectedWordsObject(addWord, false)
                        selectedWordsList.add(selectedGameRoomList)
                        mSelectedWordsAdapter.notifyDataSetChanged()
                    }
                    mSelectedWordsAdapter.notifyItemChanged(0)
                }
                else {
                    Toast.makeText(this@Screen, "Document does not exist", Toast.LENGTH_LONG).show()
                }
            })
        }).addOnFailureListener(OnFailureListener { e->
            val error=e.message
            Toast.makeText(this@Screen,"Error:"+error, Toast.LENGTH_LONG).show()
        })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...