大量のパスを一度に動かすのに失敗する
https://gyazo.com/a781e694a8780b7fb89936326b2a716a
投げなわツールで大量のパスを選択して移動させた後、何らかの操作を行うと元に戻ってしまいます
修正しました!odiak.icon
1つのバッチに含める変更の数を制限しました
ドキュメントいわく、最大500
複数のバッチに分けて更新を行うテストは行いましたが、報告があったような大量のパスを操作して確認はしていないので、動いた/動かなかったなどあれば教えてください〜
とりあえず大量のパスを一度に動かすのに失敗する#609935561280f00000407068のパス移動が成功することは確認しましたtakker.icon
ありがとうございます!takker.icon
予想される原因
大量のパスの座標を一度に変更したため、FirebaseのAPI request上限に引っかかった
理由:開発コンソールにFirebaseError: maximum 500 writes allowed per requestエラーが出力されてた
応急処置
運用でカバー
小分けにして動かす
根本的な対策
batch処理を使う?
firebaseにあるかどうかわからないけどtakker.icon
あります! odiak.icon
おっあるんですねtakker.icon
path数が多いときはbatch処理に切り替えるようにすると良さそうです
というかもう使っている?takker.icon
https://github.com/odiak/draw-server/blob/master/misc/migrateData.ts#L23
これは今回のとは関係なくて、以前MongoDBからFirestoreにデータを移行したときに書いたスクリプトですodiak.icon
/icons/なるほど.icontakker.icon
だとするとどうしてrequest上限に引っかかったのだろうか?
firebase以外のsystemを使う
無料でストレージを使える環境があるのかどうかわかりませんが……
無料じゃなくてもいいんですが、リアルタイムにデータを同期できる、ドキュメントベースのストレージがいいですねodiak.icon
というわけでFirestoreはなかなか良い
#bug #DONE