React Native の「react-native-firebase」ライブラリを使って Cloud Firestore
を利用しているのですが、DB 更新の際に現在の値を +1 する処理について覚書としてまとめ。
何も知らなければ、一旦現在のデータを取得して、それに +1 をした値をセットして更新、とやるところですが、何と FieldValue.increment()
という便利なものがあったのです…!
公式サイトのドキュメントはこちらから。
FieldValue | React Native Firebase
https://rnfirebase.io/reference/firestore/fieldvalue
使い方は下記のとおりです。
import firestore from '@react-native-firebase/firestore'; const increment = firestore.FieldValue.increment(1); firestore() .doc([ドキュメントの指定]) .update({ age: increment, });
変数 increment
に firestore.FieldValue.increment(1)
と指定すると、「現在の値に +1 した値」になるらしく、これを更新したい項目の値に設定して更新を行います。
で、Firebase のコンソールから確認したところ、ちゃんとデータが更新されていました!
公式のサンプルコードでは、firebase.firestore.FieldValue.increment(1)
と指定されていて、firebase がどこから来た値なのか分からなかったのですが、上記のサンプルコードのように firestore をインポートしている場合は、こちらは省略して問題ないみたいですね。
以上、「react-native-firebase」ライブラリを使って Cloud Firestore のデータベースを更新する際、「現在の値を +1 する」という処理を簡単に行う方法でした。
ご参考になれば幸いです。