title: Angular5 what's happened with valuechanges() function ? (angularfire2)
body: <p>I try to understand .valueChanges() and .subscribe()
  I use <strong>AngularFire2</strong> and <strong>Angular5</strong></p>
  
  <p>My code works but I don't understand how it works.</p>
  
  <p><strong>My Component :</strong></p>
  
  <pre><code>ngOnInit() {
      this.itemService.getLastUnicorns().subscribe(items =&gt; {
          this.items = items;
          console.log(items);
      });
  }
  </code></pre>
  
  <p>console.log give a beautiful array : <code>Array [ {…}, {…} ]</code></p>
  
  <p><strong>My service :</strong></p>
  
  <pre><code>getLastUnicorns() {
      this.items = this.afs.collection('unicorns', ref =&gt; ref.limit(2)).valueChanges();
      console.log(this.items);
      return this.items;
  }
  </code></pre>
  
  <p>console.log give <code>Object { _isScalar: false, source: {…}, operator: {…} }</code>
  euh WTF ?</p>
  
  <p><strong>QUESTION:</strong> what's happened in the service to give this strange object and how I am able to recover a beautiful array in my component ?
  Thank you</p>