#typescript #firebase #redux #redux-firestore
#typescript #firebase #сокращение #redux-firestore
Вопрос:
Я использую useFirestoreConnect
для получения всех данных в «задачах» из firebase.
useFirestoreConnect([
{
collection: 'todos',
},
]);
const todos = useSelector((state: any) => state.firestore.data.todos)
Я только хочу получить данные, которые включают uid пользователя. В документах useFirestoreConnect
показано только, как получить данные на основе идентификатора документа.
useFirestoreConnect([
{
collection: 'todos',
doc: todoId
}
])
const todo = useSelector(
({ firestore: { data } }) => data.todos amp;amp; data.todos[todoId]
Основываясь на примерах, которые я видел здесь, я попробовал следующее:
useFirestoreConnect([
{
collection: 'todos',
where: ["owner", "==", auth.uid]
},
]);
const todos = useSelector((state: any) => state.firestore.data.todos)
Результаты в:
Ошибка FirebaseError: функция Query.where() вызывается с недопустимыми данными. Неподдерживаемое значение поля: не определено
useFirestoreConnect([
{
collection: 'todos',
query: ["owner", "==", auth.uid]
},
]);
const todos = useSelector((state: any) => state.firestore.data.todos)
Приводит к ошибке типа:
Тип ‘{collection: string; query: any[]; }’ не может быть присвоен типу ‘string’.
Ответ №1:
Мне удалось это выяснить. auth.uid
не определено. Я просто передал правильный идентификатор аутентификации, и это сработало. Это правильный способ добавления параметров.
useFirestoreConnect([
{
collection: 'todos',
where: ["owner", "==", auth.uid]
},
]);
const todos = useSelector((state: any) => state.firestore.data.todos)