Может ли Firestore DocumentReference передаваться в методе arrayUnion? - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь добавить ссылку на документ Firestore в поле массива в пользовательском документе, чтобы сохранить ссылку как «избранную». Я могу читать из массива ссылок на документы, но не могу использовать arrayUnion для обновления array или arrayRemove для удаления элемента из массива.

Вот мой код для добавления ссылки на массив:

await userDocument.reference.updateData({'favourites':FieldValue.arrayUnion([documentReference])});

И удалить ссылку из массива:

await userDocument.reference.updateData({"favourites":FieldValue.arrayRemove([documentReference])});

Проблема заключается в появлении ошибки, которая выглядит следующим образом:

Unhandled Exception: Invalid argument: Instance of 'DocumentReference'

Насколько я понимаю, это означает, что DocumentReference не может быть принят методами arrayUnion / arrayRemove.

Если это действительно так, есть ли способ обойти это? И почему Firebase позволяет добавлять ссылки в консоль проекта, а не через код?

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

Вы разыменовываете documentReference, что невозможно.

Итак, вы захотите сделать:

FieldValue.arrayUnion(documentReference)

Вместо:

FieldValue.arrayUnion([documentReference])
0 голосов
/ 13 февраля 2020

Это ошибка в cloud_firestore: 0.13.0 to 0.13.1+1, как упоминалось в моем отчете об ошибке здесь: GitHub: DocumentReference не преобразуется в FieldValue .

В настоящее время ее можно устранить, вернувшись к cloud_firestore: 0.12.11

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...