Open8
疑問集 #皆さんのお知恵、ご知見を伺いたいです

Q. functionsのエンドポイント(URL)がバレたら悪用されないか? #脆弱性
FCM(push通知)を書いたfunctionsをクライアントから叩いているが、
functionsのエンドポイント(URL)がバレたら悪用されないか?
現状: headerにpostを含めている。
functions側のonCallメソッドは認証を包含している
onCallによって、当Firebaseプロジェクトを含んでいないサイトから アクセスしたら弾く?

Q. firebase/messaging, firebase/messaging/sw 違いとは?
firebase/messaging/sw
はserviceWoker向けとはあるが、
どちらを置き換えてもさほど変わっていない

- "firebase/messaging/sw" は、onMessageメソッドなどが搭載されていない
- 故に、フォアグラウンドは "firebase/messaging" を使う必要がある

Q. 'use client' とは? 違いとは?

Q. ReferenceError: window is not defined #NextJs

Q. if文を包含するメソッド: tryXxxxxxと命名するのはどうだろう?
tryGetTokenAndPush(mine) {
if (this.isGranted()) {
console.log('ONCE処理[mine, fcm.isGranted()]:', mine, this.isGranted());
this.getToken().then((token) => {
new FCMtokens([], { parent: mine }).push({ token });
});
}
}

isOpenEditorは常にtrueが入ってくる次のコードがある。
Q. useAppContext()前後に移動するだけで、挙動が違うのはなぜ?
const ButtonsForFollow = ({
user, // 相手
setIsOpenDrawerUsers,
sx,
isOpenEditor,
}) => {
- const [isOpenDrawerEditUserPrimary, setIsOpenDrawerEditUserPrimary] = useState(isOpenEditor);
const { mine } = useAppContext();
if (mine === undefined) return;
+ const [isOpenDrawerEditUserPrimary, setIsOpenDrawerEditUserPrimary] = useState(isOpenEditor);
console.log('[isOpenDrawerEditUserPrimary]', isOpenDrawerEditUserPrimary);
return (
前者
- isOpenDrawerEditUserPrimaryはfalseになる
後者
- isOpenDrawerEditUserPrimaryはtrueになる

- そもそもif文書けない
- 初期値がtrueなのに代入されたものがfalseなのは謎。
- ちなみにisOpenEditorの条件式が謎を解く鍵のようで、
- false && true のあとに (fetchが完了するなどして) true && true に変わる条件式をあてていた。
- これを常にtrueで渡すと問題なくtrueとなった。
結論
console.logさえも信用できない