firebase firestoreでどうにも〜が検索出来ないのでchatGPTに聞いてみた。
「〜」が削除されない問題については、いくつかの原因が考えられます。JavaScriptにおいて、特定の文字が期待通りに置換されない場合、その文字が通常のキーボード入力で生成された文字ではない可能性があります。このような場合、Unicodeを使用して正確な文字を指定する方法が有効です。
「〜」は、異なるUnicode文字で表されることがあります。例えば、全角の波ダッシュ(U+301C)や、半角のチルダ(U+FF5E)などがあります。これらの文字を正しく識別して置換するには、Unicodeを使う方法があります。
以下のコードは、これらの異なる「〜」を対象に置換を行います:
let product_id ="どうにも〜が検索出来ない";
product_id = product_id.replace(/\u301C|\uFF5E/g, "\u301C");
const productRef = await Firebase.firestore()
.collection("Products")
.doc(product_id);
const doc = await productRef.get();
if (!doc.exists) {
alert("製品が見つかりません。再選択してください");
} else {
this.product = doc.data();
this.product.id = doc.id;
}
このコードでは、正規表現(/\u301C|\uFF5E/g
)を使用して、全角の波ダッシュと半角のチルダの両方を空文字に置換しています。/g
フラグは、文字列内のすべての該当する文字に対して置換を行うことを意味します。
この方法で「〜」が正しく削除されるか試してみてください。
とのことでした。
早速置換してみたらDocument IDで検索出来るようになった。
key valueでwhere文も問題ありません。
ありがとう chatGPT