Có cơ hội nào để thêm tài liệu vào bộ sưu tập firestore với id được tạo tùy chỉnh, không phải id được tạo bởi firestore engine không?
Có cơ hội nào để thêm tài liệu vào bộ sưu tập firestore với id được tạo tùy chỉnh, không phải id được tạo bởi firestore engine không?
Câu trả lời:
this.afs.collection('[your collection]').doc('[your ID]').set([your document]);
Để mở rộng câu trả lời được chấp nhận, nếu bạn từng muốn khách hàng của mình tạo một ID ngẫu nhiên cho tài liệu trước khi đẩy lên Firestore (giả sử cùng một createId()
chức năng tồn tại bên ngoài AngularFire2)
const newId = db.createId();
db.collection("cities").doc(newId).set({
name: "Los Angeles",
state: "CA",
country: "USA"
})
Điều này rất hữu ích để đặt ID làm trường tham chiếu trong tài liệu khác, ngay cả trước khi Firestore lưu bất kỳ thứ gì. Nếu bạn không cần sử dụng đối tượng đã lưu ngay lập tức, điều này sẽ đẩy nhanh quá trình bằng cách không khiến bạn phải đợi ID. Cuộc set()
gọi hiện không đồng bộ từ đường ống mà bạn có thể đang sử dụng trong Angular
Lưu ý rằng tôi đã không đặt id: newId
đối tượng đã đặt, vì Firestore theo mặc định không lưu ID dưới dạng một trường trong tài liệu
Bạn có thể làm theo cách này
// Inject AngularFirestore as dependency
private angularFireStore: AngularFirestore // from from 'angularfire2/firestore'
// set user object to be added into the document
let user = {
id: this.angularFireStore.createId(),
name: 'new user'
...
}
// Then, finally add the created object to the firebase document
angularFireStore.collection('users').doc(user.id).set(user);
db.collection ("người dùng"). document (mAuth.getUid ()). set (người dùng)
Ở đây, tên của bộ sưu tập là "users"
và tên tài liệu là của người dùngUID
Đây u cần phải sử dụng set
khôngadd
private void storeData(String name, String email, String phone) {
// Create a new user with a first and last name
Map<String, Object> user = new HashMap<>();
user.put("name", name);
user.put("email", email);
user.put("phone", phone);
// Add a new document with a generated ID
db.collection("users").document(mAuth.getUid()).set(user)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Toasty.success(context,"Register sucess",Toast.LENGTH_SHORT).show();
}
});
}
"LA"
thì sao? Điều này sẽ không hoạt động:.doc("LA").add({...})
Vui lòng cho biết làm thế nào tôi có thể làm điều đó.