Cách thêm Tài liệu có ID tùy chỉnh vào cửa hàng cứu hỏa


Câu trả lời:


201

Để sử dụng ID tùy chỉnh, bạn cần sử dụng .set, thay vì.add

Điều này tạo ra một tài liệu có ID "LA":

db.collection("cities").doc("LA").set({
    name: "Los Angeles",
    state: "CA",
    country: "USA"
})

Điều này được lấy từ các tài liệu chính thức ở đây


1
Nếu tôi muốn thêm vào tài liệu "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 đó.
Shubham Kushwah

2
.add()tương đương với.doc().set()
roshnet


7

Để 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


2

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);

1

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 setkhô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();
        }
    });
}

1

Tạo tài liệu mới với ID

  createDocumentWithId<T>(ref: string, document: T, docId: string) {
    return this.afs.collection(ref).doc<T>(docId).set(document);
  }

VÍ DỤ: ví dụ này với lấy email làm ID cho tài liệu

this.fsService.createDocumentWithId('db/users', {}, credential.user.email);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.