LoginSignup
4
4

More than 3 years have passed since last update.

Firestoreから特定のフィールドの値を取得する最も簡単な方法(Angular)

Last updated at Posted at 2020-11-13

はじめに

Firebase Firestoreから特定のフィールドの値を取得する(Angularfire)
:point_up:こちらの記事で書いてあるように、特定のフィールドの値を取得するのにかなり苦戦した経験がある。。。

しかし、何故か今回はすんなりと、しかもスマートなコードでできました:joy:
なんで前はこんなに苦労したんだろう???(わかる人、教えてください・・)

実現したい事

https06.jpeg

こんな感じでFirestoreにデータが入ってたとして、欲しいデータはuserのフィールドであるisLockedの値!

こいつを取得するにはどうすればいいか?

環境

Angularfireがプロジェクトに入っていること

フィールドの値を取得

※必要最小限のコードです

import { AngularFireAuth } from '@angular/fire/auth';
import { AngularFirestore } from '@angular/fire/firestore';

export class SettingsPage implements OnInit {

isLocked;

constructor(
    private afAuth: AngularFireAuth,
    private db: AngularFirestore,
  ) {}

 ngOnInit() {
    this.afAuth.auth.onAuthStateChanged((user) => {
      if (user != null) {
    const userRef = this.db.collection('users').doc(user.uid);
    userRef.get().subscribe(docSnapshot => {
       // get('isLocked')でフィールド名を指定
      const locked: boolean = docSnapshot.get('isLocked');
      console.log('ロックされていますか? ' + locked);
      this.isLocked = locked;
    });
      }
    });
  }

}

これでusers/uid/の中にあるisLockedという値(ここではtrueかfalse)を取得できました!

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4