'How to add Document with Custom ID to firestore in firestore 9
How to add a custom id to a firestore document instead of automatically generated id by firebase 9?
i've problem transforming this code into firebase 9 version -
db.collection("cities").doc("LA").set({
name: "Los Angeles",
state: "CA",
country: "USA" })
Solution 1:[1]
The example that you've provided seems to be from Firestore's documentation itself. Switch to (modular) tab instead of (namespaced) to see the same in V9 syntax.
The syntax for setting a document with custom ID using Modular SDK is follows (for the same example):
import { doc, setDoc } from "firebase/firestore"; 
await setDoc(doc(db, "cities", "LA"), {
  name: "Los Angeles",
  state: "CA",
  country: "USA"
});
Solution 2:[2]
after researching a lot of time I got a solution for this by myself
Try this one.
So, the solution is:
        FirebaseFirestore db = FirebaseFirestore.getInstance();
        // [START set_document]
        Map<String, Object> city = new HashMap<>();
        city.put("batch", "25");
        city.put("blood", ""+stuBlood.getText().toString());
        city.put("email", ""+stuEmail.getText().toString());
        city.put("facebook", ""+stuFacebook.getText().toString());
        city.put("gender", ""+stuGender.getText().toString());
        city.put("id", ""+stuID.getText().toString());
        city.put("image", ""+stuImage.getText().toString());
        city.put("location", ""+stuLocation.getText().toString());
        city.put("name", ""+stuName.getText().toString());
        city.put("phone", ""+stuPhone.getText().toString());
        city.put("whatsapp", ""+stuWhatsApp.getText().toString());
        city.put("telegram", ""+stuTelegram.getText().toString());
        city.put("session", "2020-2021");
        
        String documentID = "YOUR_CUSTOM_DOC_ID (You can also add String here)";
        db.collection("YOUR_COLLECTION_PATH").document(""+documentID)
                .set(city)
                .addOnSuccessListener(new OnSuccessListener<Void>() {
                    @Override
                    public void onSuccess(Void aVoid) {
                        Log.d(TAG, "DocumentSnapshot successfully written!");
                        Toast.makeText(add_student_info.this, "Added Successfully!", Toast.LENGTH_LONG).show();
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        Log.w(TAG, "Error writing document", e);
                        Toast.makeText(add_student_info.this, "Failed to add Student data!", Toast.LENGTH_LONG).show();
                    }
                });
        // [END set_document]
    }
Hope it's working now
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source | 
|---|---|
| Solution 1 | Dharmaraj | 
| Solution 2 | Hasib | 

