如何从firebase获取最新的更新数据?

时间:2018-03-19 05:17:42

标签: javascript angular firebase firebase-realtime-database angular5

Firebase sample database image

如何从上面的图片链接中获取firebase的最新更新节点示例:

  1. DATA& SECOND_DATA 包含相同的节点对象。 [在真实应用程序中的8个节点附近有多个节点]。
  2. 所有 对象可以更新 i,e。 data1, data2, data3。 。 。来自两个节点。
  3. 所有节点(名称,密码)的对象属性相同,只有值更改。 我需要获取更新的最新节点。 I,E。如果更新DATA.data3,则在firebase中更新下一个DATA.data2。我如何获得该特定DATA的最新值。那是DATA.data1然后是DATA.data3
  4. 图片只是一个例子。并且DB名称是一些样本。在real-app中,some-sample也是一个节点。 I,E。 some-sample也是父节点,DATA和SECOND_DATA是some-sample的子节点。
  5.   

    每次firebase时,这些值都会在Angularjs div中更新   最新数据已更新。我,如果它会改变 DATA 的信息   如果在 SECOND_DATA 中更改,则会在 DATA div 中进行更改   角度信息将在 SECOND_DATA div

    中更改

    仅供参考:我是Firebase和Angular的新手。找不到这些。一个例子非常值得感谢。

2 个答案:

答案 0 :(得分:0)

Firebase云功能可以在这种情况下为您提供帮助。

您需要将触发器置于可能发生更改的所需路径上。

def check(text):
    if text== '':
        return False
    if text.isalpha() == text.isdigit(): 
        return True
    else:
        return text.isalnum()





def main():           
    text = str(raw_input("Enter text: "))
    print(check(text))
main()

您可以在此处执行一些任务,这可以由服务器处理,而不是在客户端执行。即使客户端处于非活动状态,也会执行任务。

答案 1 :(得分:0)

在最新版本的firebase(7.14.4)中,无需使用其他方法即可获取最新的更新数据。

只需通过snapshotChanges()方法从firebase中获取数据

crud.service.ts

import { Injectable } from '@angular/core';
import { AngularFirestore } from '@angular/fire/firestore';

@Injectable({
    providedIn: 'root'
})

export class CrudService {
    constructor(private firestore: AngularFirestore) { }
  
    //get data from firebase
    getFFList() {
      return this.firestore.collection('ff_list').snapshotChanges();
    }
 }

并使用

从组件获取服务数据

app.component.ts

import { CrudService } from './services/crud.service';

export class AppComponent implements OnInit {
  
  constructor(public crudService: CrudService) { }
  
  ngOnInit() {

    //get data
    this.crudService.getFFList().subscribe(data => {
      this.fflist = data.map(e => {
        return {
          id: e.payload.doc.id,
          ffdata: e.payload.doc.data(),
        };
      })
      console.log(this.fflist, "fflist");
    });

  }
  
}

您的新更新数据或新添加数据会自动显示在HTML列表中。希望对您有帮助,谢谢。