Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: update README.md to show this library as GA #532

Merged
merged 6 commits into from
Jan 29, 2019
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
153 changes: 67 additions & 86 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,110 +1,77 @@
[//]: # "This README.md file is auto-generated, all changes to this file will be lost."
[//]: # "To regenerate it, use `npm run generate-scaffolding`."
<img src="https://avatars2.githubusercontent.com/u/2810941?v=3&s=96" alt="Google Cloud Platform logo" title="Google Cloud Platform" align="right" height="96" width="96"/>

# [Google Cloud Firestore: Node.js Server SDK](https://github.com/googleapis/nodejs-firestore)
# [Google Cloud Firestore: Node.js Client](https://github.com/googleapis/nodejs-firestore)

[![release level](https://img.shields.io/badge/release%20level-beta-yellow.svg?style&#x3D;flat)](https://cloud.google.com/terms/launch-stages)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wait - isn't this like the one thing that should change?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah sorry I missed that, fixed!

[![npm version](https://img.shields.io/npm/v/@google-cloud/firestore.svg)](https://www.npmjs.org/package/@google-cloud/firestore)
[![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-firestore/master.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-firestore)

This is the Node.js Server SDK for
[Google Cloud Firestore](https://firebase.google.com/docs/firestore/). Google
Cloud Firestore is a NoSQL document database built for automatic scaling, high
performance, and ease of application development.

This Cloud Firestore Server SDK uses Google’s [Cloud Identity and Access
Management](https://cloud.google.com/firestore/docs/security/iam) for
authentication and should only be used **in trusted environments**. Your Cloud
Identity credentials allow you bypass all access restrictions and provide read
and write access to all data in your Cloud Firestore project.

The Cloud Firestore Server SDKs are designed to manage the full set of data in
your Cloud Firestore project and work best with reliable network connectivity.
Data operations performed via these SDKs directly access the Cloud Firestore
backend and all document reads and writes are optimized for high throughput.

Applications that use Google's Server SDKs should not be used in end-user
environments, such as on phones or on publicly hosted websites. If you are
developing a Web or Node.js application that accesses Cloud Firestore on behalf
of end users, use the [`firebase`](https://www.npmjs.com/package/firebase)
Client SDK.

**Table of contents:**

* [Quickstart](#quickstart)
* [Before you begin](#before-you-begin)
* [Installing the client library](#installing-the-client-library)
* [Using the client library](#using-the-client-library)
* [Versioning](#versioning)
* [Contributing](#contributing)
* [License](#license)

## Quickstart
This is the Node.js Server SDK for Google Cloud Firestore. Google Cloud Firestore is a NoSQL document database built for automatic scaling, high performance, and ease of application development.

Read more about the client libraries for Cloud APIs, including the older
Google APIs Client Libraries, in [Client Libraries Explained][explained].
This Cloud Firestore Server SDK uses Google’s Cloud Identity and Access Management for authentication and should only be used in trusted environments. Your Cloud Identity credentials allow you bypass all access restrictions and provide read and write access to all data in your Cloud Firestore project.

[explained]: https://cloud.google.com/apis/docs/client-libraries-explained
The Cloud Firestore Server SDKs are designed to manage the full set of data in your Cloud Firestore project and work best with reliable network connectivity. Data operations performed via these SDKs directly access the Cloud Firestore backend and all document reads and writes are optimized for high throughput.

* [Cloud Firestore Node.js Client API Reference][client-docs]
* [github.com/googleapis/nodejs-firestore](https://github.com/googleapis/nodejs-firestore)
* [Cloud Firestore Documentation][product-docs]
Applications that use Google&#x27;s Server SDKs should not be used in end-user environments, such as on phones or on publicly hosted websites. If you are developing a Web or Node.js application that accesses Cloud Firestore on behalf of end users, use the firebase Client SDK.

### Before you begin

1. Select or create a Cloud Platform project.
* [Using the client library](#using-the-client-library)
* [Versioning](#versioning)
* [Contributing](#contributing)
* [License](#license)

[Go to the projects page][projects]
## Using the client library

1. Enable the Google Cloud Firestore API.
1. [Select or create a Cloud Platform project][projects].

[Enable the API][enable_api]
1. [Enable the Google Cloud Firestore API][enable_api].

1. [Set up authentication with a service account][auth] so you can access the
API from your local workstation.

[projects]: https://console.cloud.google.com/project
[enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=firestore.googleapis.com
[auth]: https://cloud.google.com/docs/authentication/getting-started

### Installing the client library
1. Install the client library:

npm install --save @google-cloud/firestore
npm install --save @google-cloud/firestore

### Using the client library
1. Try an example:

```javascript
const Firestore = require('@google-cloud/firestore');

const firestore = new Firestore({
projectId: 'YOUR_PROJECT_ID',
keyFilename: '/path/to/keyfile.json',
});

const document = firestore.doc('posts/intro-to-firestore');

// Enter new data into the document.
document.set({
title: 'Welcome to Firestore',
body: 'Hello World',
}).then(() => {
// Document created successfully.
});

// Update an existing document.
document.update({
body: 'My first Firestore app',
}).then(() => {
// Document updated successfully.
});

// Read the document.
document.get().then(doc => {
// Document read successfully.
});

// Delete the document.
document.delete().then(() => {
// Document deleted successfully.
});
async function main() {
const firestore = new Firestore({
projectId: process.env.GCLOUD_PROJECT,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know you didn't do this (it was probs me), but can you remove the options getting passed into the constructor of the sample here? They aren't needed, like at all.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👌
Made a separate PR #533 for this

keyFilename: process.env.GOOGLE_APPLICATION_CREDENTIALS,
});

const document = firestore.doc('posts/intro-to-firestore');
console.log('Document created');

// Enter new data into the document.
await document.set({
title: 'Welcome to Firestore',
body: 'Hello World',
});
console.log('Entered new data into the document');

// Update an existing document.
await document.update({
body: 'My first Firestore app',
});
console.log('Updated an existing document');

// Read the document.
let doc = await document.get();
console.log('Read the document');

// Delete the document.
await document.delete();
console.log('Deleted the document');

};

main().catch(console.error);
```


Expand Down Expand Up @@ -134,7 +101,21 @@ Apache Version 2.0

See [LICENSE](https://github.com/googleapis/nodejs-firestore/blob/master/LICENSE)

## What's Next

* [Cloud Firestore Documentation][product-docs]
* [Cloud Firestore Node.js Client API Reference][client-docs]
* [github.com/googleapis/nodejs-firestore](https://github.com/googleapis/nodejs-firestore)

Read more about the client libraries for Cloud APIs, including the older
Google APIs Client Libraries, in [Client Libraries Explained][explained].

[explained]: https://cloud.google.com/apis/docs/client-libraries-explained

[client-docs]: https://cloud.google.com/nodejs/docs/reference/firestore/latest/
[product-docs]: https://firebase.google.com/docs/firestore/
[shell_img]: //gstatic.com/cloudssh/images/open-btn.png

[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png
[projects]: https://console.cloud.google.com/project
[billing]: https://support.google.com/cloud/answer/6293499#enable-billing
[enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=firestore.googleapis.com
[auth]: https://cloud.google.com/docs/authentication/getting-started