サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
qiita.com/1amageek
こんばんは、Stamp Incの村本です。 普段はFirebaseの技術コンサルティングをやってます。 今日は、Firebase Meetup #15 Cloud Functions Dayが行われてると言うことで、僕は仕事で参加できなかったんだけどちょっとしたTipsを紹介します。 CloudFunctionsの管理って大変ですよね?みんなindex.tsにベタ書きしてたりしませんか? CloudFunctionsのFunctionを整理する Functionはネスト可能 CloudFunctionsはJSのモジュールを使えば結構きれいに整理することができます。 CloudFunctionsではネストしたFunctionも認識してくれます。次の例をみてください。 これはシンプルなCallable functionの例です。
事実世界のインターネット人口が増えたのは1990年代からだ。 [引用] http://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h10/html/98wp2-3-1f.html [引用] http://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h29/html/nc144210.html NoSQLの登場 1990年に入るとインターネットの利用人口が急激に増加することになる。 この頃からトランザクションに最適化されて設計されたDBでは性能劣化が始まり、システムはデータベースに対しスケール性能を必要とし始める。 多くの開発者は、単一の強力なサーバーでリレーショナル・データベースを実行するのではなく、リレーショナル・データベース管理システム (RDBMS) のパーティショニング (シャーディング
Next.js 9を使ってCloud FunctionsとFirebase HostingでSSRする 皆さんこんにちは、noriです。 FirebaseSummitのレジストレーションがオープンしましたね。僕は今年も参加しますよ!! 今年はスペインの開催ですねー 楽しみ。 最近フロントの環境設定をする機会があったので、登場したばかりのNext.js 9をCloud Functionsにのせてみました。 Cloud Functionsにのせるところまでは、すぐだったんですがReactの扱いが初めてだった僕にとってつまりどころがあったので、同じことをしようとしている人たちのためにこの記事を書くことにしました。 先にサンプルコードを置いておきます。 Firebase HostingとしてNext.jsを動かす まず今回やったことを図として示します。 ポイントは以下の2つです。 Next.jsを
こんにちは、Stamp Incのnoriです。 金曜日の20時くらいからこの記事を書き始めて若干の後悔を感じながら記事を書きました。書き終わったら飲みに行きます。 この記事ではCloud FirestoreとFirebase Cloud Storageを使ってソーシャル機能を実装する方法を紹介します。 どの機能においてもですが、実装方法は要件と照らし合わせて考えることが重要です。ソーシャル機能も要件によって実装方法は異なってきます。要件によって実装がどう異なるかについても説明しようと思いますので最後まで読んで頂けると幸いです。 また、ここでのソーシャル機能とはフォロー、フォロワーに限定して話を進めます。 早速ですが、フォロー、フォロワーをCloud Firestoreではどのように表現するか見ていきましょう。 QueryとSubCollectionが利用可能なCloud Firestore
CollectionGroupがついにリリース こんにちは、Stamp Incのnoriです。 GWの初日に、ビッグなリリースをぶち込んできやがってなんてことをしてくれんだ。そんなことを思いながら必死でキャッチアップしてまとめました。 Firebase Cloud FirestoreのCollectionGroup まだ正式なドキュメントや出てませんが、テストコードの内容から使い方がわかったので参考にして頂ければと思います。 CollectionGroupとは まずCollectionGroupは何かいつ使うものなのか理解しましょう。 ちょうど昨日Stripeのイベントに登壇したばかりなので、UserとChargeを例に説明します。 Userは利用者、Chargeはユーザーの支払い情報を扱うモデルであると考えてください。 次の要件があるときを考えてみましょう。 要件 支払い情報はその支払い
どうも@1amageekです。 先日のFirebase SDKのアップデートで追加されたFieldValue.increment()が期待以上の仕様変更だったので紹介します。 FieldValueとは? 開発においてサーバーに処理を任せる必要がある要件が存在します。 例えば、日付の管理などがそれに当たります。クライアント側では日付の変更がデバイス毎に可能なため正確な日付を取得できません。そういった場合はサーバー側でStampstampを取得してDBに保存するはずです。Cloud FirestoreではFieldValueを使うことでこれを簡単に行なってくれます。 実はFieldValueはCloudFirestoreの前身とも言えるFirebase Realtime Database(RTDB)の時から存在し、RTDBではServerValueという名前で提供されていました。Cloud F
みなさんこんにちは@1amageekです。 年末からいろいろやって、ひと段落したのでまとめました。 https://twitter.com/1amageek/status/1092774482563887107 ※ ここFirebaseと呼んでるのはCloud Firestoreことをさします。 なぜTransactionが必要なのか まず、Transactionがどういった機能なのかを簡単に説明します。 TwitterやInstagramのフォロー機能を参考に説明します。 Firestoreでこの機能を実現するならば、以下のように構成するのがもっとも効率的だと思います。 ユーザーAとユーザーBにそれぞれカウントをもたせる /user/a { followerCount: 0 followeeCount: 0 } /user/b { followerCount: 0 followeeCou
// /version/1/article/0 { title: "hoge", body: "hoge", isPublished: true, author: "1amageek" } // もしくは // /version/1/user/1amageek/article/0 { title: "hoge", body: "hoge", isPublished: true, author: "1amageek" } どっちがいいでしょうか? 前者は、検索性に優れているけど、isPublished === trueを入れ忘れただけの簡単なヒューマンエラーでサービス潰す可能性ありますよね?😇 僕ならやりたくない。と言うことで、後者にしましょう。 いや待てよ。。。🤔 公開した時に必ず全文検索を噛ませないといけない。。orz このくらいはCloud Firestoreだけでやりたいじゃん。
はじめに Firebase Realtime DBを実践投入するにあたって考えたことを読んで頂いてありがとうございます。 多くの方から「いいね」を頂いて、今回のこの記事を書くモチベーションになりました 本当にありがとうございました! さて、CloudFirestoreは、Firebase Realtime Databaseとは全く違うデータベースです。特にSubCollectionやQueryが導入されたことにより、リレーションシップの設計に関して大きく異なります。 この記事では、主にCloudFirestoreにおけるリレーションシップの設計方法から、アプリ・CloudFunctionsに至るまでを幅広く解説して行こうと思います。 次の記事ではデータベースの歴史を解説しています。 RDBの限界とNoSQLの登場 Cloud Firestoreでの開発について 私の経験上確実に断言できるこ
どうもFirebase Japan User Groupオーガナイザーの@1amageekです。 この記事ではUX向上のための画像の取り扱い方について解説しようと思います。 サービスと画像 画像のロードはサービスのUXに大きな影響を与える WEBでは、1秒の遅れでCVRが7%ダウンすると言われています。Instagramがもし画像のロードに1秒もかかっていたとすれば、おそらくここまでは大きなサービスにはならなかったでしょう。 画像の取り扱いには、時間をかけてUXを向上させる意味があります。 ロード速度も重要だが、待ち時間こそ重要 画像のロードは、サイズと通信速度に依存します。つまり技術的観点からすれば、とにかく画像を小さくすること以外は、解決方法はありません。 既存のあらゆるサービスは、待ち時間をいかに低減させるかを工夫してUXを向上させてきました。この記事ではその手法に焦点をあてて紹介し
ServerTimestamp利用してますか? FirestoreのServerTimestampは、時間軸を全てサーバーに預けてしまうことによってモバイルの個体差によるずれを解消する機能です。 今まではサーバーで値が決定するまでnullだった。 これは、実験して見たサンプルです。Swiftですがなんとなくご覧下さい。 do { let db = Firestore.firestore().collection("test1").document("id") // ServerTimestampをセット db.setData(["test": FieldValue.serverTimestamp(), "key": "hoge"]) { (error) in // 一度Documentを取得する db.getDocument(completion: { (snapshot, error)
クックパッドの新規サービスKomercoを設計した@1amageekです。 クックパッドの新規サービスKomercoはTechConfでも発表した通り全てサーバーレスで開発されています。サーバーレスの利点や開発におけるメリットはこの資料に説明しているので、今日はFirestoreについて深く説明したいと思います。また、Firestoreのざっくりした説明に関してはこちらをご覧下さい。 Cloud Firestoreは進化したFirebase Realtime Database Firebase RTDB + GCP datastore = Firestoreについて第一印象 FirestoreはSpannerと同じテクノロジー構築されている FirestoreはSpannerと同じテクノロジー構築されています。つまりSpannerの特性を理解することでFirestoreのコアを知ることが可
前回Firebase.yebisuで質問を頂いた。Firebaseのマイグレーションについて言及します。 TL;DR マイグレーションはスキーマ定義が汚れてもいいから新しいプロパティをはやすことで頑張る! ビジネスとDBマイグレーション マイグレーションについて話を進める前にマイグレーションはどのようなシーンに置いて必要なのか私の考えを述べようと思います。 一言でマイグレーションと言ってもその規模は様々で今から話をする内容がどの規模の物かを想像するのは、その人の置かれた状況や立場によって考え方が変わると思います。 既存DBからのFirebaseへの移管 FirebaseからFirebaseへの移管 スキーマの変更 そんな中まず最初に述べたいのは、マイグレーションは実施しないに越したことはないと言うことです。 なぜならリスクが必ずついてくること、リスクに対してのリターンが見合うかはやってみな
SubCollectionいつ使うの問題 Cloud Firestoreがリリースされて数日経ちました。SaladaをFirestoreに対応させるため、仕様の深いところまで検証しているところです。そんな中でぶち当たった問題について記載します。 TL;DR Queryに依存するアプリを作ると拡張性を失う。 QueryはElasticSearchに任せる。 SubCollectionの使い所は限定的。 SubCollectionとは FirestoreはCollectionとDocumentとDataで構成されます。 Collectionは複数のDocumentを持つことができ、 DocumentはDataとCollectionを持つことができます。Documentが持つCollectionのことをSubCollectionと言います。 なぜSubCollectionが必要だったのか Fir
Cloud Firestoreファーストインプレッション リリース発表をついに来たか!って思いました。そしてFirestoreとFirebase Realtime Databaseがどう違うのかを読んで、大きく進化したなぁって思いました。そして実際に使ってみて、これはもはや別物って思いました。 FirestoreとFirebase Realtime Databaseの違いについてはすでにこちらでまとめられていたのでこちらをご覧ください。 https://qiita.com/Yatima/items/54ea22d0cea1acc6cbcb Cloud Firestoreのすごいところ FirestoreにはBoringSSLが使われている BordingSSLはGoogleによるOpenSSLのfork。2014年にForkを発表して、すでにAndroidなどでは使われていたようですが、本
みなさん、癖のあるデータベースであるFirebaseにもそろそろ慣れてきた頃でしょうか。 私は、Cookpadに入って4ヶ月が経ちました。幸せなことにCookpadでもFirebaseを使ってアプリの開発を行っています。 勉強会でもFirebaseの発表を多く見かけるようになって、嬉しい限りですもっといろんな方にFirebaseの魅力を届けるため、新しい記事を書くことにしました。 ※この記事では特にRealtime DatabaseのことをさしてFirebaseと呼んでいます。 開発の鉄板 クライアントサーバーモデル クライアントサーバーモデルとはクライアントとサーバーに機能を分離したソフトウエアの総称です。 2017年現在、モバイルで動作するほとんどのアプリはクライアントサーバーモデルを採用し開発されたものと考えて間違いないでしょう。ところが、Firebaseの登場によってクライアントサ
Firebase Realtime Databaseは操作は非常い簡単ですが、今までMySQLなどで設計していた人にはとっつきにくいです。 なぜなら、一般的にDatabase(MySQLなど)と呼ばれていたものが特性的にFirebase Realtime Databaseから遠い存在だからです。この特性についてDatabaseのことを少し掘り下げると、Firebase Realtime Databaseの特徴を理解し、扱いやすいDatabaseに変わってくるはずです。 また、ここではDatabase単体の特性について言及する訳ではなく、クラウドシステム(分散システム)におけるDatabaseの特性を説明します。 結論 Firebase Realtime Databaseは一貫性を犠牲にすることで、可用性と分断耐性に優れたクラウドシステムである。 CAP定理を全て満足したクラウドシステムは存
Firebase Realtime DBでマイグレーション Firebase Realtime DBを利用するにあたって大きな障壁になるマイグレーションについて考えてみました。特に既存のDBからFirebaseへマイグレーションを行う際の方法について言及していこうと思います。 マイグレーションの2つのストラテジー 既存のDBからFirebase Realtime DBへのマイグレーションは以下の2つが提案されています。 Background Sync Double Write Background Sync このストラテジーは、既存DBとFirebaseをサーバー間で同期するストラテジーです。 このストラテジーの特徴は、全てをデータの移行をサーバーが行うことです。既存DBがFirebaseにレプリケーションされます。データ量の多いサービスは、現実的ではないかもしれません。 Double W
Firebase Realtime DBを実践に投入する Databaseと聞くと、これから利用しようとするFirebaseがmBaaSであることを忘れてついREST(Client Server Model)で考えてしまいがちですが、大前提はMobile Platformなので、一度REST、RDBの考え方は捨ててみてください。 RDBの考え方を引き継いだままでは、Firebase Realtime DBの最善の設計はできないと考えています。 そして、RDBの考え方を引き継いだままFirebase Realtime DBを理解しようとすることが、導入の一つの障壁となっていると思っています。 ぜひ頭をリフレッシュしてFirebase Realtime DBの見方を変えてみてください。 この記事では、Firebase Realtime DBの導入するにあたっての考え方やテクニックを紹介します。
このページを最初にブックマークしてみませんか?
『@1amageekのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く