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

Fix Spelling #814

Open
wants to merge 14 commits into
base: gh-pages
Choose a base branch
from
2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
level of experience, education, socioeconomic status, nationality, personal
dblythy marked this conversation as resolved.
Show resolved Hide resolved
appearance, race, religion, or sexual identity and orientation.

## Our Standards
Expand Down
4 changes: 2 additions & 2 deletions _includes/android/files.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ ParseFile file = new ParseFile("resume.txt", data);

Notice in this example that we give the file a name of `resume.txt`. There's two things to note here:

* You don't need to worry about filename collisions. Each upload gets a unique identifier so there's no problem with uploading multiple files named `resume.txt`.
* It's important that you give a name to the file that has a file extension. This lets Parse figure out the file type and handle it accordingly. So, if you're storing PNG images, make sure your filename ends with `.png`.
* You don't need to worry about file name collisions. Each upload gets a unique identifier so there's no problem with uploading multiple files named `resume.txt`.
dblythy marked this conversation as resolved.
Show resolved Hide resolved
* It's important that you give a name to the file that has a file extension. This lets Parse figure out the file type and handle it accordingly. So, if you're storing PNG images, make sure your file name ends with `.png`.

Next you'll want to save the file up to the cloud. As with `ParseObject`, there are many variants of the `save` method you can use depending on what sort of callback and error handling suits you.

Expand Down
2 changes: 1 addition & 1 deletion _includes/android/objects.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ String playerName = gameScore.getString("playerName");
boolean cheatMode = gameScore.getBoolean("cheatMode");
```

If you don't know what type of data you're getting out, you can call `get(key)`, but then you probably have to cast it right away anyways. In most situations you should use the typed accessors like `getString`.
If you don't know what type of data you're getting out, you can call `get(key)`, but then you probably have to cast it right away anyway. In most situations you should use the typed accessors like `getString`.

The four special values have their own accessors:

Expand Down
12 changes: 6 additions & 6 deletions _includes/android/push-notifications.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

Push notifications are a great way to keep your users engaged and informed about your app. You can reach your entire user base quickly and effectively. This guide will help you through the setup process and the general usage of Parse to send push notifications.

If you haven't installed the SDK yet, [head over to the Push QuickStart]({{ site.baseUrl }}/parse-server/guide/#push-notifications-quick-start) to get our SDK up and running.
If you haven't installed the SDK yet, [head over to the Push Quick Start]({{ site.baseUrl }}/parse-server/guide/#push-notifications-quick-start) to get our SDK up and running.

## Setting Up Push

If you want to start using push, start by completing the [Android Push Notifications QuickStart Guide]({{ site.baseUrl }}/parse-server/guide/#push-notifications-quick-start) to learn how to configure your app and send your first push notification. Come back to this guide afterwards to learn more about the push features offered by Parse.
If you want to start using push, start by completing the [Android Push Notifications Quick Start Guide]({{ site.baseUrl }}/parse-server/guide/#push-notifications-quick-start) to learn how to configure your app and send your first push notification. Come back to this guide afterwards to learn more about the push features offered by Parse.

The Parse library provides push notifications using Firebase Cloud Messaging (FCM) if Google Play Services are available. Learn more about Google Play Services [here](https://firebase.google.com/docs/cloud-messaging/).

Expand Down Expand Up @@ -314,7 +314,7 @@ The scheduled time cannot be in the past, and can be up to two weeks in the futu

## Receiving Pushes

Make sure you've gone through the [Android Push QuickStart]({{ site.baseUrl }}/parse-server/guide/#push-notifications-quick-start) to set up your app to receive pushes.
Make sure you've gone through the [Android Push Quick Start]({{ site.baseUrl }}/parse-server/guide/#push-notifications-quick-start) to set up your app to receive pushes.

When a push notification is received, the “title” is displayed in the status bar and the “alert” is displayed alongside the “title” when the user expands the notification drawer. If you choose to subclass `com.parse.ParsePushBroadcastReceiver`, be sure to replace that name with your class' name in the registration.

Expand Down Expand Up @@ -344,9 +344,9 @@ If your push has no "uri" parameter, `onPushOpen` will invoke your application's

If you provide a "uri" field in your push, the `ParsePushBroadcastReceiver` will open that URI when the notification is opened. If there are multiple apps capable of opening the URI, a dialog will displayed for the user. The `ParsePushBroadcastReceiver` will manage your back stack and ensure that clicking back from the Activity handling URI will navigate the user back to the activity returned by `getActivity`.

### Managing the Push Lifecycle
### Managing the Push Life Cycle

The push lifecycle has three phases:
The push life cycle has three phases:

1. A notification is received and the `com.parse.push.intent.RECEIVE` Intent is fired, causing the `ParsePushBroadcastReceiver` to call `onPushReceive`. If either "alert" or "title" are specified in the push, then a Notification is constructed using `getNotification`. This Notification uses a small icon generated using `getSmallIconId`, which defaults to the icon specified by the `com.parse.push.notification_icon` metadata in your `AndroidManifest.xml`. The Notification's large icon is generated from `getLargeIcon` which defaults to null. The notification's `contentIntent` and `deleteIntent` are `com.parse.push.intent.OPEN` and `com.parse.push.intent.DELETE` respectively.
2. If the user taps on a Notification, the `com.parse.push.intent.OPEN` Intent is fired. The `ParsePushBroadcastReceiver` calls `onPushOpen`. The default implementation automatically sends an analytics event back to Parse tracking that this notification was opened. If the push contains a "uri" parameter, an activity is launched to navigate to that URI, otherwise the activity returned by `getActivity` is launched.
Expand Down Expand Up @@ -501,7 +501,7 @@ If everything looks great so far, but push notifications are not showing up on y
* Make sure you've used the correct App ID and client key, and that `Parse.initialize()` is being called. `Parse.initialize()` lets the service know which application it is listening for; this code must be in your `Application.onCreate` rather than `Activity.onCreate` for a particular `Activity`, so that any activation technique will know how to use Parse.
* Check that the push registration call is being called successfully. Your device must successfully register a ParseInstallation object with a valid FCM Registration id in the "deviceToken" field
* Check that the device is set to accept push notifications from your app.
* Note that, by design, force-killed apps will not be able to receive push notifications. Launch the app again to reenable push notifications.
* Note that, by design, force-killed apps will not be able to receive push notifications. Launch the app again to re-enable push notifications.
* Check the number of subscribers in your Parse Push Console. Does it match the expected number of subscribers? Your push might be targeted incorrectly.
* If testing in the emulator, try cleaning and rebuilding your project and restarting your AVD.
* Turn on verbose logging with `Parse.setLogLevel(Parse.LOG_LEVEL_VERBOSE)`. The error messages will be a helpful guide to what may be going on.
Expand Down
4 changes: 2 additions & 2 deletions _includes/android/user-interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -303,9 +303,9 @@ The image will download asynchronously, and the appropriate `ParseImageView` wil

You can define a placeholder image to be used when the image fetch has not yet completed. Call `setPlaceholder(Drawable)` on your `ParseQueryAdapter` to use the specified `Drawable` as a fallback image.

## Lifecycle Methods
## Life Cycle Methods

We expose two hooks in the data lifecycle of the Adapter for you to execute custom logic — right before we query Parse for your data and right after the fetched objects have been loaded from the query. These methods are particularly useful for toggling some loading UI.
We expose two hooks in the data life cycle of the Adapter for you to execute custom logic — right before we query Parse for your data and right after the fetched objects have been loaded from the query. These methods are particularly useful for toggling some loading UI.

An `OnQueryLoadListener` can be set via `setOnQueryLoadListener(OnQueryLoadListener)`, which provides `onLoading()` and `onLoaded(List<ParseObject>, Exception)` methods for implementation.

Expand Down
4 changes: 2 additions & 2 deletions _includes/cloudcode/cloud-code-advanced.md
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,7 @@ Like we've seen in Cloud Code, it's also possible to run some code after an obje

No response is required for `afterSave` triggers.

Let's take the same example we created in Cloud Code [in the last chapter](#cloud-code-aftersave-triggers); keeping track of the number of comments on a blog post. But instead of storing the number in our Parse database, we'll store the count in a separate data source accessible by our Rails app. This could be useful if you're storing data that will be used to run custom analysics instead of being served to your users through a client.
Let's take the same example we created in Cloud Code [in the last chapter](#cloud-code-aftersave-triggers); keeping track of the number of comments on a blog post. But instead of storing the number in our Parse database, we'll store the count in a separate data source accessible by our Rails app. This could be useful if you're storing data that will be used to run custom analytics instead of being served to your users through a client.

```ruby
# We need to disable CSRF protection for webhooks to work. Instead we
Expand Down Expand Up @@ -581,7 +581,7 @@ Here's an example of the JSON data that would be sent in the request to this web
}
```

After setting up your webhook in the Dashboard UI, you'll be acurately decrementing comment counts!
After setting up your webhook in the Dashboard UI, you'll be accurately decrementing comment counts!

# Config
Parse Config offers a convenient way to configure parameters in Cloud Code.
Expand Down
6 changes: 3 additions & 3 deletions _includes/cloudcode/cloud-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ Parse.Cloud.beforeSave(Parse.User, () => {
},
});
```
This means that the field `accType` on `Parse.User` will be 'viewer' on signup, and will be unchangable, unless `masterKey` is provided.
This means that the field `accType` on `Parse.User` will be 'viewer' on signup, and will be unchangeable, unless `masterKey` is provided.

The full range of built-in Validation Options are:

Expand All @@ -227,7 +227,7 @@ The full range of built-in Validation Options on `.fields` are:
- `constant`: whether the field is immutable.
- `error`: a custom error message if validation fails.

You can also pass a function to the Validator. This can help you apply reoccuring logic to your Cloud Code.
You can also pass a function to the Validator. This can help you apply reoccurring logic to your Cloud Code.

```javascript
const validationRules = request => {
Expand Down Expand Up @@ -799,7 +799,7 @@ Parse.Cloud.afterLiveQueryEvent('MyObject', (request) => {
});
```

By default, ParseLiveQuery does not perform queries that require additional database operations. This is to keep your Parse Server as fast and effient as possible. If you require this functionality, you can perform these in `afterLiveQueryEvent`.
By default, ParseLiveQuery does not perform queries that require additional database operations. This is to keep your Parse Server as fast and efficient as possible. If you require this functionality, you can perform these in `afterLiveQueryEvent`.

```javascript
// Including an object on LiveQuery event, on update only.
Expand Down
2 changes: 1 addition & 1 deletion _includes/common/errors.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ The following is a list of all the error codes that can be returned by the Parse

| Name | Code | Description |
|----------------------------------|------|---------------------------------------------------------------|
| `InvalidFileName` | 122 | An invalid filename was used for Parse File. A valid file name contains only a-zA-Z0-9_. characters and is between 1 and 128 characters. |
| `InvalidFileName` | 122 | An invalid file name was used for Parse File. A valid file name contains only a-zA-Z0-9_. characters and is between 1 and 128 characters. |
| `MissingContentType` | 126 | Missing content type. |
| `MissingContentLength` | 127 | Missing content length. |
| `InvalidContentLength` | 128 | Invalid content length. |
Expand Down
4 changes: 2 additions & 2 deletions _includes/common/security.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Almost every class that you create should have these permissions tweaked to some

### Restricting class creation

As a start, you can configure your application so that clients cannot create new classes on Parse. This is done by setting the key `allowClientClassCreation` to `false` in your ParseServer configuration. See the project Readme for an overview of [Configuring your ParseServer](https://github.com/parse-community/parse-server#configuration). Once restricted, classes may only be created from the Data Browser or with a the `masterKey`. This will prevent attackers from filling your database with unlimited, arbitrary new classes.
As a start, you can configure your application so that clients cannot create new classes on Parse. This is done by setting the key `allowClientClassCreation` to `false` in your ParseServer configuration. See the project README for an overview of [Configuring your ParseServer](https://github.com/parse-community/parse-server#configuration). Once restricted, classes may only be created from the Data Browser or with a the `masterKey`. This will prevent attackers from filling your database with unlimited, arbitrary new classes.
dblythy marked this conversation as resolved.
Show resolved Hide resolved

### Configuring Class-Level Permissions

Expand Down Expand Up @@ -484,7 +484,7 @@ There are some special classes in Parse that don't follow all of the same securi

||`_User`|`_Installation`|
| --- | --- |
|Get|normal behaviour [1, 2, 3]|ignores CLP, but not ACL|
|Get|normal behavior [1, 2, 3]|ignores CLP, but not ACL|
|Find|normal behavior [3]|master key only [6]|
|Create|normal behavior [4]|ignores CLP|
|Update|normal behavior [5]|ignores CLP, but not ACL [7]|
Expand Down
4 changes: 2 additions & 2 deletions _includes/dotnet/files.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ ParseFile file = new ParseFile("resume.txt", data);

Notice in this example that we give the file a name of `resume.txt`. There's two things to note here:

* You don't need to worry about filename collisions. Each upload gets a unique identifier so there's no problem with uploading multiple files named `resume.txt`.
* It's important that you give a name to the file that has a file extension. This lets Parse figure out the file type and handle it accordingly. So, if you're storing PNG images, make sure your filename ends with `.png`.
* You don't need to worry about file name collisions. Each upload gets a unique identifier so there's no problem with uploading multiple files named `resume.txt`.
* It's important that you give a name to the file that has a file extension. This lets Parse figure out the file type and handle it accordingly. So, if you're storing PNG images, make sure your file name ends with `.png`.

Next you'll want to save the file up to the cloud. As with `ParseObject`, you can call `SaveAsync` to save the file to Parse.

Expand Down
2 changes: 1 addition & 1 deletion _includes/dotnet/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ If you're familiar with web frameworks like ASP.NET MVC we've taken many of the
This guide is for the .NET-based version of our SDK. If you are doing Windows 8 development using HTML and JavaScript, please see our <a href="{{ site.baseurl }}/js/guide">JavaScript guide</a>.
</div></div>

If you haven't installed the SDK yet, please [head over to the QuickStart guide]({{ page.quickstart }}) to get our SDK up and running in Visual Studio or Xamarin Studio. Note that our SDK requires Visual Studio 2012 or Xamarin Studio and targets .NET 4.5 applications, Windows Store apps, Windows Phone 8 apps, and [Xamarin.iOS 6.3+](http://docs.xamarin.com/releases/ios/xamarin.ios_6/xamarin.ios_6.3) or [Xamarin.Android 4.7+](http://docs.xamarin.com/releases/android/xamarin.android_4/xamarin.android_4.7) apps. You can also check out our [API Reference]({{ site.apis.dotnet }}) for more detailed information about our SDK.
If you haven't installed the SDK yet, please [head over to the Quick Start guide]({{ page.quickstart }}) to get our SDK up and running in Visual Studio or Xamarin Studio. Note that our SDK requires Visual Studio 2012 or Xamarin Studio and targets .NET 4.5 applications, Windows Store apps, Windows Phone 8 apps, and [Xamarin.iOS 6.3+](http://docs.xamarin.com/releases/ios/xamarin.ios_6/xamarin.ios_6.3) or [Xamarin.Android 4.7+](http://docs.xamarin.com/releases/android/xamarin.android_4/xamarin.android_4.7) apps. You can also check out our [API Reference]({{ site.apis.dotnet }}) for more detailed information about our SDK.

Parse's .NET SDK makes heavy use of the [Task-based Asynchronous Pattern](http://msdn.microsoft.com/en-us/library/hh873175.aspx) so that your apps remain responsive. You can use the [async and await](http://msdn.microsoft.com/en-us/library/hh191443.aspx) keywords in C# and Visual Basic to easily use these long-running tasks.
2 changes: 1 addition & 1 deletion _includes/dotnet/objects.md
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ To create a `ParseObject` subclass:
1. Declare a subclass which extends `ParseObject`.
2. Add a `ParseClassName` attribute. Its value should be the string you would pass into the `ParseObject` constructor, and makes all future class name references unnecessary.
3. Ensure that your subclass has a public default (i.e. zero-argument) constructor. You must not modify any `ParseObject` fields in this constructor.
4. Call `ParseObject.RegisterSubclass<YourClass>()` in your code before calling `ParseClient.Initialize()`. The following code sucessfully implements and registers the `Armor` subclass of `ParseObject`:
4. Call `ParseObject.RegisterSubclass<YourClass>()` in your code before calling `ParseClient.Initialize()`. The following code successfully implements and registers the `Armor` subclass of `ParseObject`:

```cs
// Armor.cs
Expand Down
Loading