pVectorSearch2023-06-06
Firebaseに検索結果を保存し、それをシェアするためのパーマリンクを作る
$ npm install firebase
https://gyazo.com/82af3a39197d8eb14dd5749d40371f6f
ほー、新しい書き方が生まれてる
ChatGPTに新しい書き方の方を使って、と言ったらわかってくれるかな?
自分で新しい書き方に書き換えてしまった
NextJSでURLからIDを取得して表示して?と言ったら書いてくれた
pages/result/[id].js
TypeScriptと指定し忘れてJSで書かれた
コンパイル通ったのに404だけど?と聞いたらチェックリストを出してくれた
パスあってるか確認して?と言われたので確認したらapp/pages/result/[id].tsxに置いてたw
人間がやりがちな典型的なミスのことを知ってるw
ページタイトル画像
/api/pages/:projectName/:pageTitle/icon
✅表示できた
管理者用の画面
検索クエリは保管して管理者が見れるようにする
✅そういう旨の説明が書いてあるページを作る
✅検索した時点で結果をFirebaseに入れてパーマリンクを出すか
✅公開する
これ厄介だな
例えばScrapbox記法が混じってるとブラウザのテキストには記法がないからヒットしない
真面目にやるならプレーンテキストにする必要がある
いや、これ新しいページを開いたときにはScrapbox側が行IDだと仮定して取っちゃって本来の挙動が発動しないのでは
コメントアウトした
Scrapboxがダメ?なだけなので他のサービスだと使えるかも知れない
管理者(や特別に許可された人)かどうかでUIを変える
$ npm install firebase firebaseui --save
https://gyazo.com/4f694f09f47ddd2ee50ae33b078e56c9
見た目はさておき管理ページができた
code:ts
let list = null;
if (user.email === "nishio.hirokazu@gmail.com") {
list = QueryList();
}
return (
<>
<div>Welcome, {user.displayName}!</div>
{list}
</>
);
こんな感じなので特定機能だけ特定の知り合いに許可するのもできる
ちょうど話す機会があったのでこれを作った話をしてhal_skとyuisekiから検索対象にする許諾をもらった
ネクストアクションはエクスポートを介さずに公開プロジェクトのデータを吸い取ってインデックスにすること
井戸端バックアッププロジェクトのコードでできるはず