Add a Firestore document
Stay organized with collections
Save and categorize content based on your preferences.
Add a Firestore document
Explore further
For detailed documentation that includes this code sample, see the following:
Code sample
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],[],[[["\u003cp\u003eThis page provides code samples for adding a document to a Firestore collection named "cities," using a document ID "new-city-id".\u003c/p\u003e\n"],["\u003cp\u003eCode examples are given in C#, Go, Java, Node.js, PHP, Python, and Ruby, demonstrating how to add data to a Firestore document.\u003c/p\u003e\n"],["\u003cp\u003eAll examples require setting up Application Default Credentials for Firestore authentication, as detailed in the linked documentation.\u003c/p\u003e\n"],["\u003cp\u003eThe code snippets all use a method to add data to the specified document, using \u003ccode\u003eSetAsync\u003c/code\u003e in C#, \u003ccode\u003eSet\u003c/code\u003e in Go, \u003ccode\u003eset\u003c/code\u003e in Java, \u003ccode\u003eset\u003c/code\u003e in Node.js and PHP, \u003ccode\u003eset\u003c/code\u003e in python, and \u003ccode\u003eset\u003c/code\u003e in ruby.\u003c/p\u003e\n"]]],[],null,["# Add a Firestore document\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Add and update data](/firestore/native/docs/manage-data/add-data)\n- [Add data to Cloud Firestore](https://firebase.google.com/docs/firestore/manage-data/add-data)\n\nCode sample\n-----------\n\n### C#\n\n\nTo authenticate to Firestore, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n await db.Collection(\"cities\").Document(\"new-city-id\").SetAsync(city);\n\n### Go\n\n\nTo authenticate to Firestore, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n\n import (\n \t\"context\"\n \t\"log\"\n\n \t\"cloud.google.com/go/firestore\"\n )\n\n func addDocWithID(ctx context.Context, client *firestore.Client) error {\n \tvar data = make(map[string]interface{})\n\n \t_, err := client.Collection(\"cities\").Doc(\"new-city-id\").Set(ctx, data)\n \tif err != nil {\n \t\t// Handle any errors in an appropriate way, such as returning them.\n \t\tlog.Printf(\"An error has occurred: %s\", err)\n \t}\n\n \treturn err\n }\n\n### Java\n\n\nTo authenticate to Firestore, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n db.collection(\"cities\").document(\"new-city-id\").set(data);\n\n### Node.js\n\n\nTo authenticate to Firestore, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n await db.collection('cities').doc('new-city-id').set(data);\n\n### PHP\n\n\nTo authenticate to Firestore, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n $db-\u003ecollection('samples/php/cities')-\u003edocument('new-city-id')-\u003eset($data);\n\n### Python\n\n\nTo authenticate to Firestore, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n db.collection(\"cities\").document(\"new-city-id\").set(data)\n\n### Ruby\n\n\nTo authenticate to Firestore, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n city_ref = firestore.doc \"#{collection_path}/new-city-id\"\n city_ref.set data\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=firestore)."]]