- 检查Firebase中的'Cloud Firestore数据库”是否已启用。在console.firebase.google.com中检查。
- 检查已分配给用户的身份验证令牌是否包含读取/写入数据的权限。通过调用firebase.auth().currentUser.getIdToken() 方法获取用户的身份验证令牌并在控制台中检查其有效性。(以下为代码示例)
import { Injectable } from '@angular/core';
import { AngularFireAuth } from '@angular/fire/auth';
import { AngularFirestore } from '@angular/fire/firestore';
import firebase from 'firebase/app';
@Injectable()
export class MyService {
constructor(
private afAuth: AngularFireAuth,
private firestore: AngularFirestore,
) {}
async getData() {
const user = await this.afAuth.currentUser;
const token = await user.getIdToken();
console.log(token); // 检查权限是否包含读取/写入数据的权限
// 此处为例子,获取某个collection的数据
const data = await this.firestore.collection('myCollection').get().toPromise();
console.log(data); // 获取数据
}
}
- 如果您的数据库规则限制了该用户的访问,请在控制台中增加该用户的Firebase UID以进行测试。
- 如果是在开发服务器上运行,请检查是否在环境变量中配置了正确的Firebase项目。
- 如果是在生产服务器上运行,请检查是否已将Firebase项目的正确凭据(例如API密钥)配置到服务器上。