質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
COM

COM(Component Object Model)はMicrosoftによるコンポーネントテクノロジーであり、 ソフトウェアの再利用を目的とした技術を指します。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

3回答

1597閲覧

'"arry-contains"' での エラー

tomsuma

総合スコア38

COM

COM(Component Object Model)はMicrosoftによるコンポーネントテクノロジーであり、 ソフトウェアの再利用を目的とした技術を指します。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/08/24 11:37

編集2020/08/24 11:38

whereメソッドを使ったところ

Argument of type '"arry-contains"' is not assignable to parameter of type 'WhereFilterOp'

このようなエラーが出て
array-contains-any
に書き換えてみたり、

array-containsに関するGit

を参考にしてみたのですが、
解決しません、、

components/ResultPage/ResultImage.tsx import React ,{FC, useState,useEffect} from 'react'; import {useParams} from 'react-router-dom'; import firebase from '../../firebase' import {FileData} from '../../types/Types' const ImageItemList: FC =()=>{ const [data, setData] = useState<FileData[]>([]); const {keyword} = useParams(); const getData =async(searchWord: string | undefined)=>{ const db = firebase.firestore(); const fileDataRef = db.collection("fileData"); const searchedData = fileDataRef.where("keyword", "array-contains-any" , searchWord); **エラー部分** const snapShot = await searchedData.get(); const temporaryData: object[] = []; snapShot.docs.map(doc =>{ temporaryData.push(doc.data()) }) setData(temporaryData as FileData[]); } useEffect(() =>{ getData(keyword); },[]); return ( <div> </div> ) } export default ImageItemList
firebae.ts import firebase from "firebase/app"; import "firebase/firestore"; import "firebase/firebase-storage"; var firebaseConfig = { apiKey: "AIzaSyCkUItnJUMpMMVOtrrpwRSvCQf1GJ0lYuc", authDomain: "form-techpit.firebaseapp.com", databaseURL: "https://form-techpit.firebaseio.com", projectId: "form-techpit", storageBucket: "form-techpit.appspot.com", messagingSenderId: "169202913739", appId: "1:169202913739:web:4b34010c81aea9893f264e" }; // Initialize Firebase firebase.initializeApp(firebaseConfig); export default firebase;

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

好的,谢谢您,如果您遇到这样的问题,可以问我,我总是尽力而为。

MyMileStoneCard

投稿2023/09/07 04:09

Copunty

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

The error message you're encountering is related to Firebase Firestore queries, specifically the use of array-contains-any. The issue is that you are using "array-contains" instead of "array-contains-any", which is causing a type error because TypeScript expects the correct WhereFilterOp.

Here's the corrected code with "array-contains-any":

import React, { FC, useState, useEffect } from 'react';
import { useParams } from 'react-router-dom';
import firebase from '../../firebase';
import { FileData } from '../../types/Types';

const ImageItemList: FC = () => {
const [data, setData] = useState<FileData[]>([]);
const { keyword } = useParams();

const getData = async (searchWord: string | undefined) => {
const db = firebase.firestore();
const fileDataRef = db.collection('fileData');
const searchedData = fileDataRef.where('keyword', 'array-contains-any', [searchWord]); // Use 'array-contains-any' here
const snapShot = await searchedData.get();
const temporaryData: object[] = [];

snapShot.docs.map((doc) => { temporaryData.push(doc.data()); }); setData(temporaryData as FileData[]);

};

useEffect(() => {
getData(keyword);
}, []);

return <div></div>;
};

export default ImageItemList;

In this code, I replaced "array-contains" with "array-contains-any" and also wrapped searchWord in an array because array-contains-any expects an array of values to check for.

With these changes, the error should be resolved, and your Firestore query should work as expected.

投稿2023/09/06 12:02

Copunty

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

array-contains-anyにして、
yarn startしたら治りました,,,

投稿2020/08/24 11:40

tomsuma

総合スコア38

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問