yucatio@システムエンジニア

趣味で作ったものいろいろ

2021-01-01から1年間の記事一覧

Draft.jsで何も出てこない→出てるはず

Facebook社のReact用リッチエディタDraft.js。 Overview | Draft.jsにあるサンプルを試したけれど、何も出てこなかったときのメモ。 ソースコード import React from 'react'; import {Editor, EditorState} from 'draft-js'; import 'draft-js/dist/Draft.c…

Javaで1日の始まりと終わりを取得する

Javaで1日の始まりと終わりを取得します。 LoalDateから取得する場合 LocalTime.MINとLocalTime.MAXを使います。 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate date = LocalDate.parse("2021-11-01", formatter); L…

JavaのLocalDateTime.parse()に日付だけ渡すとエラー

JavaのLocalDateTime.parse()で日付のみを指定したらエラーになりました。回避策も書いておきます。 コード DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDateTime datetime = LocalDateTime.parse("2021-11-01", format…

Firestoreのtransaction中にドキュメントをaddする

Firestoreではtransaction機能が使え、複数の書き込みをまとめることができます。 transactionを使用するときには、以下のコードのようにrunTransactionを利用します。2つ目の引数にトランザクションの内容を書いた関数を渡します。 await runTransaction(db…

Firestoreで文字列を正規表現で制限するセキュリティルール

Firestoreのセキュリティルールでは、文字列を正規表現で制限することができます。悪意のあるユーザにおかしな値を登録されないようアプリと同じ制限をかけておきましょう。 String.matches(regex) String.matchesを使うと、フィールドに登録される値が 指定…

Firestoreで数値の範囲を制限するセキュリティルール

Firestoreのセキュリティルールで数値の範囲を制限することができます。悪意のあるユーザにより思わぬ値を登録されてしまい、誤動作を起こすことを防げます。 フィールドの大小比較を使う 数値の範囲を指定するには、フィールドの値を大小比較します。 例え…

Firestoreで文字列の長さを制限するセキュリティルール

Firestoreのセキュリティルールで文字列の長さを制限することができます。悪意のあるユーザによりとても長い文字列が登録されてしまい、結果過大な請求が発生するのを防ぐためにも、文字列の長さを制限しておくのはおすすめです。 string.size() 文字列のstr…

FirestoreでEnum型風ルールを作成する

Firestoreではセキュリティルールでフィールドの型を指定できます。 フィールドの型にはboolやint、stringなどがあります。 しかしenum型は存在しません。 Firebaseのセキュリティルールでは、string型のフィールドに対して登録できる文字列を制限することが…

MUI(Material-UI)のアイコンにフチドリをつける

MUI(Material-UI)のアイコンにフチドリをつけます。 通常のCSSのスタイルと同様にstrokeとstrokeWidthを指定します。strokeOpacityやstrokeLinejoinなども指定できます。 コード <StarIcon sx={{color: yellow[500], stroke: yellow[900], strokeWidth: 4, strokeOpacity: 0.2}} /> 全ソースコード import React from 'react'; import Box from '@mui/material</staricon>…