Как запросить документ со ссылочным путем? - PullRequest
0 голосов
/ 07 января 2019

Я запрашиваю некоторые песни в своей коллекции Songs, чтобы я мог отправить данные песни стороннему в запросе http. Прежде чем отправить песню, мне нужно имя исполнителя песни. У меня есть отдельная коллекция Artists, где у каждого документа Artist есть поле «name». Мне нужно отправить имя исполнителя с остальными данными моей песни.

Кажется, я не могу найти документацию для Firebase Admin SDK , которая не позволяет получить документ строго со ссылочным путем в качестве поля.

exports.songs = functions.https.onRequest((request, response) => {
db.collection('songs')
    .get()
    .then(querySnapshot => {
        querySnapshot.forEach(doc => {
            let data = doc.data()
            let artist = data.artist // reference field to artist document?
            artist.get().then(documentSnapshot => {
            response.send(documentSnapshot)
            })
        })
        })
     .catch(error => {
     console.log('Error getting documents: ', error)
     })
 })

Я ожидаю получить doc.data() документа, на который ссылается художник. Тем не менее, у меня просто истекло время ожидания.

1 Ответ

0 голосов
/ 07 января 2019

Вы можете запрашивать поля ссылочного типа, как и любое другое поле. Все, что вам нужно сделать, это передать объект типа DocumentReference:

const artistRef = db.collection("artists").child("some-artist-id");

db
    .collection("songs")
    .where("artist", "==", artistRef)
    .get()
    .then(...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...