Merge remote-tracking branch 'origin/master'

This commit is contained in:
ehesp
2019-08-21 11:37:20 +01:00
19 changed files with 26 additions and 296 deletions

View File

@@ -31,7 +31,7 @@ dependencies {
#### Add Analytics to Main Android Application:
**`android/app/src/main/java/**/MainApplication.java`\*\*:
**`android/app/src/main/java/**/MainApplication.java`**:
```java{2,8}
// ..

View File

@@ -28,7 +28,6 @@ for installation instructions on each individual module page.
| <Anchor href="/admob">AdMob</Anchor> | <Badge type="downloads">@react-native-firebase/admob</Badge> | <Badge type="coverage">admob</Badge> |
| <Anchor href="/analytics">Analytics</Anchor> | <Badge type="downloads">@react-native-firebase/analytics</Badge> | <Badge type="coverage">analytics</Badge> |
| <Anchor href="/app">App</Anchor> | <Badge type="downloads">@react-native-firebase/app</Badge> | <Badge type="coverage">app</Badge> |
| <Anchor href="/indexing">App Indexing</Anchor> | <Badge type="downloads">@react-native-firebase/indexing</Badge> | <Badge type="coverage">indexing</Badge> |
| <Anchor href="/invites">App Invites</Anchor> | <Badge type="downloads">@react-native-firebase/invites</Badge> | <Badge type="coverage">invites</Badge> |
| <Anchor href="/auth">Authentication</Anchor> | <Badge type="downloads">@react-native-firebase/auth</Badge> | <Badge type="coverage">auth</Badge> |
| <Anchor href="/firestore">Cloud Firestore</Anchor> | <Badge type="downloads">@react-native-firebase/firestore</Badge> | <Badge type="coverage">firestore</Badge> |
@@ -44,5 +43,5 @@ for installation instructions on each individual module page.
| <Anchor href="/notifications">Notifications</Anchor> | <Badge type="downloads">@react-native-firebase/notifications</Badge> | <Badge type="coverage">notifications</Badge> |
| <Anchor href="/perf">Performance Monitoring</Anchor> | <Badge type="downloads">@react-native-firebase/perf</Badge> | <Badge type="coverage">perf</Badge> |
| <Anchor href="/database">Realtime Database</Anchor> | <Badge type="downloads">@react-native-firebase/database</Badge> | <Badge type="coverage">database</Badge> |
| <Anchor href="/config">Remote Config</Anchor> | <Badge type="downloads">@react-native-firebase/remote-config</Badge> | <Badge type="coverage">remote-config</Badge> |
| <Anchor href="/remote-config">Remote Config</Anchor> | <Badge type="downloads">@react-native-firebase/remote-config</Badge> | <Badge type="coverage">remote-config</Badge> |
| <Anchor href="/utils">Utils</Anchor> | <Badge type="downloads">@react-native-firebase/utils</Badge> | <Badge type="coverage">utils</Badge> |

View File

@@ -1,32 +0,0 @@
---
title: Android Setup | App Indexing
description: Setup your Android application to handle app indexed URLs.
---
# Android Manual Linking
Your Android application needs to be setup to detect whether URLs which a user navigates to on your device are to be
handled by your application.
To set this up, add a new `intent-filter` to your manifest file. The example below will trigger the app indexing module
to handle URLs from any `https://invertase.io/blog` URL.
`android/app/src/main/AndroidManifest.xml`:
```xml
<manifest ...>
<application android:name="com.your.app.MainApplication"
...>
<activity android:name="com.your.app.MainActivity"
...>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="invertase.io"
android:pathPrefix="/blog" />
</intent-filter>
```

View File

@@ -1,46 +0,0 @@
---
title: App Indexing
description: Firebase App Indexing gets your app into Google Search.
---
# App Indexing
Firebase App Indexing gets your app into Google Search. If users have your app installed, they can launch your app and
go directly to the content they're searching for. App Indexing reengages your app users by helping them find both public
and personal content right on their device, even offering query autocompletions to help them more quickly find what they
need. If users dont yet have your app, relevant queries trigger an install card for your app in Search results.
React Native Firebase provides functionality to handle events such as users opening the application via a URL which
has been indexed by Firebase.
<Youtube id="C35OSHlTNwA" />
## Getting Started
<Grid>
<Block
icon="build"
color="#ffc107"
title="Quick Start"
to="/quick-start"
>
Setup your application to handle indexed URLs.
</Block>
<Block
icon="layers"
color="#03A9F4"
title="Reference"
to="/reference"
>
Understand how to handle indexed URLs in your application in the reference documentation.
</Block>
</Grid>
## Learn more
Our documentation is a great place to start, however if you're looking for more help or want to help others,
check out the resources below:
- [Stack Overflow](https://stackoverflow.com/questions/tagged/react-native-firebase-indexing)
- [Github Issues](https://github.com/invertase/react-native-firebase/issues?utf8=%E2%9C%93&q=is%3Aissue+sort%3Aupdated-desc+label%3Aindexing+)
- [Firebase Documentation](https://firebase.google.com/docs/firestore?utm_source=invertase&utm_medium=react-native-firebase&utm_campaign=indexing)

View File

@@ -1,44 +0,0 @@
---
title: iOS Setup | App Indexing
description: Setup your iOS application to handle app indexed URLs.
---
# iOS Manual Linking
To handle indexed URLs within your iOS app, the URL definition needs to be added to your project using XCode.
## Setup up with XCode
Depending on your setup, open the following file with XCode:
- Using Pods: `ios/<project>.xcworkspace`
- None Pods Setup: `ios/<project>.xcodeproj`
### Navigate to URL Types
Open the URL Types configuration for your project:
1. Select your project on left hand side file tree
2. Select the Info tab on the middle pane
3. Expand the URL Types section header
![Example](https://prismic-io.s3.amazonaws.com/invertase%2F6b3a9afc-bb0a-44da-b642-ab0da8c48eed_navigate-to-url-types.png)
### Create a URL Type and Scheme
After navigating to the URL Types section of your Xcode workspace you can now add a new URL type.
#### Add new URL type (+)
1. Click the Add items plus (+) icon at the bottom of the URL Types section:
![Example](https://prismic-io.s3.amazonaws.com/invertase%2F806d79c8-3208-46db-9b38-7e5b5a13d7a2_add-item.png)
#### Configure the new URL Type
1. Input the `Identifier` value; The Identifier is normally the same as your Bundle Identifier which is usually the reverse of the domain for your app e.g. com.mycompany.app.
2. Input the `URL Schemes` value - this can be a comma delimited list of values; For example if you set this to myapp,foobar then your app will then accept urls from myapp://_ and foobar://_.
`Icon` and `Role` can be left to use the defaults unless you need to change these.
![Example](https://prismic-io.s3.amazonaws.com/invertase%2F5d66eb78-883f-4f87-b390-adcee22bbff0_configure-item.png)

View File

@@ -1,107 +0,0 @@
---
title: App Indexing Quick Start
description: Getting started with App Indexing in React Native Firebase
---
# App Indexing Quick Start
## Installation
Install this module with Yarn:
```bash
yarn add @react-native-firebase/indexing
```
Setup your application by following the platform specific instructions:
<Grid>
<Block
icon="phone_android"
color="#4CAF50"
title="Android Setup"
to="/android"
>
Setup your Android application to handle app indexed URLs.
</Block>
<Block
icon="phone_iphone"
color="#2196F3"
title="iOS Setup"
to="/ios"
>
Setup your iOS application to handle app indexed URLs.
</Block>
</Grid>
## Module usage
The app indexing module provides functionality to hook onto a user opening your application via an app indexed URL.
Import the module:
```js
import indexing from '@react-native-firebase/indexing';
```
The package also provides access to the firebase instance:
```js
import { firebase } from '@react-native-firebase/indexing';
```
### Detecting app opens from a URL
If a has your application installed, but in a closed state, opening an app indexed URL will cause the app to
open. Once the app has loaded, the `getInitialURL()` method can be called to detected whether the app was opened
by an app indexed URL. If your application was not opened via an app indexed URL, the value will be `null`.
Note: All URLs which trigger the app to open will be passed to this method, therefore it is important to check
the domain of the URL to check it has come from an indexed source.
```js
import indexing from '@react-native-firebase/indexing';
async function bootstrapApp() {
const url = await indexing.getInitialURL();
if (url && url.startsWith('https://invertase.io')) {
if (url === 'https://invertase.io/offers') {
// Handle the URL, e.g. using a react-navigation custom service:
NavigationService.navigate('OffersScreen', { from: 'indexing' });
}
}
}
```
### Subscribe to URL events
If a user has opened your app and it is open or in a background state, you must subscribe and handle the URL open
event directly within your application life cycle using the `onOpenURL()` method.
Note: All URLs which trigger the app to handle it are passed to this method, therefore it is important to check
the domain of the URL to check it has come from an indexed source.
```jsx
import React, { useEffect } from 'react';
import indexing from '@react-native-firebase/indexing';
function App({ navigation }) {
// Listen to open URL events once ready
useEffect(() => {
const unsubscribe = indexing().onOpenURL(url => {
if (url.startsWith('https://invertase.io')) {
if (url === 'https://invertase.io/offers') {
// Handle the URL, e.g. using the react-navigation navigation prop:
navigation.navigate('OffersScreen', { from: 'indexing' });
}
}
});
// Return the function to unsubscribe from
return unsubscribe;
}, []);
return <NavigationStack />;
}
```

View File

@@ -31,7 +31,7 @@ dependencies {
#### Add Remote Config to Main Android Application:
**`android/app/src/main/java/**/MainApplication.java`\*\*:
**`android/app/src/main/java/**/MainApplication.java`**:
```java{2,8}
// ..

View File

@@ -39,10 +39,10 @@ import remoteConfig from '@react-native-firebase/remote-config';
async function getValues() {
try {
const activated = await config().fetchAndActivate();
const activated = await remoteConfig().fetchAndActivate();
if (activated) {
const experimentalFeatureEnabled = await config().getValue('experiment');
const experimentalFeatureEnabled = await remoteConfig().getValue('experiment');
console.log('Experimental source: ', experimentalFeatureEnabled.source);
console.log('Experimental value: ', experimentalFeatureEnabled.value);
}
@@ -62,7 +62,7 @@ have been fetched and activated, it is recommended you set default values using
import remoteConfig from '@react-native-firebase/remote-config';
async function bootstrap() {
await config().setDefaults({
await remoteConfig().setDefaults({
experiment: false,
});
}
@@ -77,7 +77,7 @@ which are applied in a production application. This can be done with the `setCon
import remoteConfig from '@react-native-firebase/remote-config';
async function bootstrap() {
await config().setConfigSettings({
await remoteConfig().setConfigSettings({
isDeveloperModeEnabled: __DEV__,
});
}

View File

@@ -152,18 +152,6 @@
- text: iOS Setup
to: '/ios'
- module: indexing
group: App Indexing
children:
- text: Overview
to: '/'
- text: Quick Start
to: '/quick-start'
- text: Android Setup
to: '/android'
- text: iOS Setup
to: '/ios'
- module: iid
group: Instance ID
children:
@@ -227,7 +215,7 @@
to: '/ios'
- module: remote-config
group: Remote RemoteConfig
group: Remote Config
children:
- text: Overview
to: '/'
@@ -257,7 +245,3 @@
to: '/'
- text: Quick Start
to: '/quick-start'
- text: Android Setup
to: '/android'
- text: iOS Setup
to: '/ios'

View File

@@ -1,11 +0,0 @@
---
title: Android Setup
description: Manually integrate Utils into your Android application.
---
# Android Manual Linking
> The following steps are only required if your environment does not have access to React Native
> auto-linking.
## TODO

View File

@@ -17,7 +17,7 @@ development of the React Native Firebase library.
title="Quick Start"
to="/quick-start"
>
Install & integrate the utils functionality into your app or tests.
Start using the utilities in your own application.
</Block>
<Block
icon="layers"
@@ -25,6 +25,6 @@ development of the React Native Firebase library.
title="Reference"
to="/reference"
>
The API reference covers everything required to successfully monitor your apps performance.
The API reference covers everything required to use the utils within your own application.
</Block>
</Grid>

View File

@@ -1,11 +0,0 @@
---
title: iOS Setup
description: Manually integrate Utils into your iOS application.
---
# iOS Manual Linking
> The following steps are only required if your environment does not have access to React Native
> auto-linking.
## TODO

View File

@@ -5,28 +5,14 @@ description: Getting started with the Utils package in React Native Firebase
# Utils Quick Start
## Installation
Install this module with Yarn:
```bash
yarn add @react-native-firebase/utils
```
> Integrating manually and not via React Native auto-linking? Check the setup instructions for <Anchor version group href="/android">Android</Anchor> & <Anchor version group href="/ios">iOS</Anchor>.
The utils module comes installed with the `app` module.
## Module usage
Import the Performance Monitoring package into your project:
Import the Utils package into your project:
```js
import utils from '@react-native-firebase/utils';
```
The package also provides access to the firebase instance:
```js
import { firebase } from '@react-native-firebase/utils';
import { utils } from '@react-native-firebase/app';
```
### Detect whether the app is running within TestL Lab
@@ -40,7 +26,7 @@ It is useful to change the apps configuration if it is being run in Test Lab, fo
data collection. Such functionality can be carried out by taking advantage of the `isRunningInTestLab` property:
```js
import utils from '@react-native-firebase/utils';
import { utils } from '@react-native-firebase/app';
import analytics from '@react-native-firebase/analytics';
async function bootstrap() {
@@ -49,3 +35,15 @@ async function bootstrap() {
}
}
```
### Access device file paths
Some modules require access to your local device filesystem (such as Storage & ML Kit Vision). The utils
module access to the device directory locations, working cross platform on Android & iOS.
```js
import { utils } from '@react-native-firebase/app';
// Access the device pictures directory
const picturesDir = utils.FilePath.PICTURES_DIRECTORY;
```