Dữ liệu Firebase đại diện cho các đối tượng JSON. Nếu bạn mở ứng dụng của mình từ bảng điều khiển Firebase, bạn có thể thêm dữ liệu theo cách thủ công bằng cách nhấp vào dấu +
Chúng ta sẽ tạo một cấu trúc dữ liệu đơn giản. Bạn có thể kiểm tra hình ảnh dưới đây
Trong chương trước, chúng tôi đã kết nối Firebase với ứng dụng của mình. Bây giờ, chúng ta có thể đăng nhập Firebase vào bảng điều khiển
console.log[firebase]
Chúng tôi có thể tạo tham chiếu đến bộ sưu tập của người chơi.
var ref = firebase.database[].ref['players']; console.log[ref];
Chúng ta có thể thấy kết quả sau trong bảng điều khiển
Có hai phương pháp mà chúng tôi có thể sử dụng để thêm dữ liệu tài liệu vào Firebase Cloud Firestore Phiên bản 9
- addDoc[] → bạn đang ở đây
- setDoc[]
Ghi chú. Trước khi tiến xa hơn, bạn sẽ cần làm ba việc
Để sử dụng phương thức addDoc[], chúng ta cần nhập ba phương thức từ câu lệnh nhập Firebase Firestore
- getDatabase[] → Cơ sở dữ liệu Firestore nơi chúng tôi muốn thêm dữ liệu dưới dạng tài liệu
- collection[] → Nơi chúng tôi muốn thêm tên bộ sưu tập và tham chiếu cơ sở dữ liệu
- addDoc[] → Nơi chúng tôi thực sự chuyển dữ liệu của mình cùng với tên bộ sưu tập và tham chiếu db
import { getFirestore, collection, addDoc } from "firebase/firestore";
1. Khởi tạo cơ sở dữ liệu Firestore
Khởi tạo cơ sở dữ liệu Firestore và lưu trữ nó trong hằng số được gọi là db
const db = getFirestore[app];
Phương thức addDoc[] sẽ nhận hai đối số
- bộ sưu tập [] – chuyển cơ sở dữ liệu và tham chiếu tên bộ sưu tập làm đối số cho nó
- dữ liệu {} – dữ liệu mà chúng tôi muốn thêm vào bộ sưu tập dưới dạng một trong các tài liệu của nó
2. Bộ sưu tập [] Phương pháp
Phương thức collection[] này cũng có hai đối số
- cơ sở dữ liệu → db
- tên bộ sưu tập → người dùng
Gọi phương thức bộ sưu tập [] và chuyển các tham chiếu cơ sở dữ liệu [db] và tên bộ sưu tập [người dùng] trong dấu ngoặc kép cho nó
Gán nó cho một hằng số gọi là dbRef
const dbRef = collection[db, "users"];
Như bạn có thể thấy, Cơ sở dữ liệu Firestore không có tên bộ sưu tập là “người dùng“
Bạn có thể thắc mắc…
Làm cách nào chúng tôi có thể thêm dữ liệu vào bộ sưu tập không tồn tại trong Cơ sở dữ liệu Firestore?
Trong Cơ sở dữ liệu Firestore, bạn chỉ có thể thêm một hoặc nhiều tài liệu bên trong bộ sưu tập
Nhưng bạn sẽ không thể tự thêm bộ sưu tập mà không có bất kỳ tài liệu nào
Khi bạn thêm dữ liệu dưới dạng tài liệu vào một bộ sưu tập, phương thức addDoc[] sẽ cố gắng tìm tên bộ sưu tập được chỉ định trong phương thức bộ sưu tập[]
Trong trường hợp này người dùng
Nếu nó không thể tìm thấy người dùng tên bộ sưu tập,
Nó sẽ tạo một bộ sưu tập mới có tên là người dùng và thêm dữ liệu bên trong nó dưới dạng tài liệu
3. Dữ liệu tài liệu {}
Đối số thứ hai của phương thức addDoc[] là dữ liệu thực tế mà chúng tôi muốn lưu trữ dưới dạng tài liệu bên trong bộ sưu tập người dùng
Tin vui là chúng ta có thể chỉ cần lưu trữ một đối tượng JavaScript dưới dạng dữ liệu tài liệu bên trong cơ sở dữ liệu Firestore
Vì vậy, hãy tạo một đối tượng JavaScript với một vài cặp khóa-giá trị hay còn gọi là thuộc tính
const data = {
name: "Raja Tamil",
country: "Canada"
};
4. Thêm dữ liệu tài liệu bằng addDoc[]
Bây giờ chúng ta có cả hai đối số cần thiết để sử dụng thành công phương thức addDoc[]
Hãy gọi phương thức addDoc[] và truyền dbRef và dữ liệu làm đối số cho nó
import { getFirestore, collection, addDoc } from "firebase/firestore";
...
addDoc[dbRef, data]
.then[docRef => {
console.log["Document has been added successfully"];
}]
.catch[error => {
console.log[error];
}]
Chạy ứng dụng
Quay lại trang Cơ sở dữ liệu Firestore, sau đó làm mới và bạn có thể thấy chúng tôi đã thêm thành công dữ liệu vào Cơ sở dữ liệu Firestore
Nó có ba cột
- Cột đầu tiên → bộ sưu tập người dùng
- Cột thứ hai → Firebase tự động tạo id tài liệu duy nhất thường là giá trị số alpha
Điều này cực kỳ hữu ích vì chúng tôi có thể xác định bất kỳ tài liệu nào trong bộ sưu tập người dùng bằng id tự động hoặc id tài liệu này
- Cột thứ ba → Dữ liệu thực tế được lưu trữ dưới dạng tài liệu ở định dạng cặp khóa-giá trị
5 Lấy ID tài liệu bằng addDoc[]
Đôi khi, bạn muốn lấy ID tài liệu được tạo tự động ngay sau khi dữ liệu được thêm vào Cơ sở dữ liệu Firestore
May mắn thay, bạn có thể làm điều đó bằng phương thức addDoc[]
Để lấy ID được tạo tự động từ phản hồi, tất cả những gì chúng ta phải làm là truy cập thuộc tính id trên đối tượng docRef
addDoc[dbRef, data]
.then[docRef => {
console.log[dbRef.id]; //p4eZcO5QV43IYnigxALJ
}]
.catch[error => {
console.log[error];
}]
Đôi khi bạn muốn thêm dữ liệu tài liệu vào Cloud Firestore bằng id tài liệu tùy chỉnh của riêng mình, chẳng hạn như email, v.v. thay vì id được tạo tự động