要解决此错误,您需要在调用DocumentReference.set()
之前确保数据有效且不为undefined
。
以下是一个示例代码,展示了如何在Angular中使用Firebase来设置文档:
import { Component } from '@angular/core';
import { AngularFirestore, AngularFirestoreDocument } from '@angular/fire/firestore';
@Component({
selector: 'app-example',
template: `
`,
})
export class ExampleComponent {
private docRef: AngularFirestoreDocument;
constructor(private firestore: AngularFirestore) {
// 指定要设置数据的文档引用
this.docRef = this.firestore.doc('users/user1');
}
setData() {
const data = {
firstName: 'John',
lastName: 'Doe',
};
// 在设置数据之前,确保数据有效且不为undefined
if (data.firstName && data.lastName) {
this.docRef.set(data)
.then(() => {
console.log('Data has been set successfully!');
})
.catch((error) => {
console.error('Error setting data:', error);
});
} else {
console.error('Invalid data:', data);
}
}
}
在上面的示例中,我们首先定义了一个文档引用docRef
,它指向了Firebase数据库中的users/user1
文档。
然后,在setData()
函数中,我们创建了一个包含firstName
和lastName
字段的数据对象。在调用DocumentReference.set()
之前,我们使用条件语句检查数据是否有效。如果数据有效,我们调用set()
方法来设置文档数据。
如果lastName
字段为undefined
或不存在,将会打印出错误消息并阻止设置数据。
请确保在使用类似代码时,替换users/user1
为您实际的文档路径,并根据您的需求自定义数据对象。