gpt4 book ai didi

angular - Firestore 从 Angular ​​获取单个数据

转载 作者:行者123 更新时间:2023-12-04 17:43:30 24 4
gpt4 key购买 nike

我是 Angular 的新手。请帮助我从 firestore 获取单个数据。我正在从数据库中获取完整数据,但我需要数据库中的特定数据。这是我用于获取完整数据的 Angular 代码。我提到了两个代码文件,一个是服务,另一个是显示代码。

服务.ts

import { Injectable } from '@angular/core';
import { AngularFirestore,AngularFirestoreDocument,AngularFirestoreCollection } from '@angular/fire/firestore';
import { User } from '../models/user';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

@Injectable({
providedIn: 'root'
})
export class RegisterService {
private registerCollection : AngularFirestoreCollection<User>;
private resgisters : Observable<User[]>;
private registerDocu : AngularFirestoreDocument<User>;

constructor(public db : AngularFirestore) {
this.registerCollection = db.collection<User>('Register');
this.resgisters = db.collection('Register').valueChanges();

this.resgisters = this.registerCollection.snapshotChanges().pipe(
map(actions => {
return actions.map(a => {
const data = a.payload.doc.data();
const id = a.payload.doc.id;
return { id, ...data };
});
})
);
}
addRegister(user: User) {
this.registerCollection.add(user);
}
getRegister(){
return this.resgisters;
}

}

firestore image

个人资料.page.ts

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { AuthService } from '../../../services/auth.service';
import { LoggingService } from '../../../services/logging.service';
import { RegisterService } from '../../../services/register.service';
import { User } from '../../../models/user';

import * as firebase from 'firebase/app';

@Component({
selector: 'app-profile',
templateUrl: './profile.page.html',
styleUrls: ['./profile.page.scss'],
})
export class ProfilePage implements OnInit {
user : User[];

constructor(private registerservice : RegisterService,private loggingService: LoggingService, private activatedRoute: ActivatedRoute, private authService: AuthService) { }

ngOnInit() {
this.registerservice.getRegister().subscribe(register => {
this.user = register;
console.log(this.user);
});
}
}

最佳答案

为了从 Firestore 数据库中获取单个对象,您需要查询文档。根据您的代码结构,getRegister() 方法应该是:

getRegister(node) {
return this.db.Doc<User>('Register/' + node).valueChanges();
}

您可以在库的 github 页面上找到文档:https://github.com/angular/angularfire2/blob/master/docs/firestore/documents.md

关于angular - Firestore 从 Angular ​​获取单个数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53275623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com