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

v17.1.0 #3524

Merged
merged 6 commits into from
May 14, 2024
Merged

v17.1.0 #3524

Show file tree
Hide file tree
Changes from all commits
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
27 changes: 12 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,17 @@ by conforming to Angular conventions.
## Example use

```ts
import { provideFirebaseApp, getApp, initializeApp } from '@angular/fire/app';
import { provideFirebaseApp, initializeApp } from '@angular/fire/app';
import { getFirestore, provideFirestore } from '@angular/fire/firestore';

@NgModule({
imports: [
export const appConfig: ApplicationConfig = {
providers: [
provideFirebaseApp(() => initializeApp({ ... })),
provideFirestore(() => getFirestore()),
...
],
...
})
export class AppModule { }
```

```ts
Expand All @@ -44,11 +44,14 @@ interface Item {

@Component({
selector: 'app-root',
standalone: true,
template: `
<ul>
<li *ngFor="let item of item$ | async">
{{ item.name }}
</li>
@for (item of (item$ | async); track item) {
<li>
{{ item.name }}
</li>
}
</ul>
`
})
Expand Down Expand Up @@ -96,11 +99,11 @@ We have three sample apps in this repository:

Get help on our [Q&A board](https://github.com/angular/angularfire/discussions?discussions_q=category%3AQ%26A), the official [Firebase Mailing List](https://groups.google.com/forum/#!forum/firebase-talk), the [Firebase Community Slack](https://firebase.community/) (`#angularfire2`), the [Angular Community Discord](http://discord.gg/angular) (`#firebase`), [Gitter](https://gitter.im/angular/angularfire2), the [Firebase subreddit](https://www.reddit.com/r/firebase), or [Stack Overflow](https://stackoverflow.com/questions/tagged/angularfire2).

> **NOTE:** AngularFire is maintained by Googlers but is not a supported Firebase product. Questions on the mailing list and issues filed here are answered on a <strong>best-effort basis</strong> by maintainers and other community members. If you are able to reproduce a problem with Firebase <em>outside of AngularFire's implementation</em>, please [file an issue on the Firebase JS SDK](https://github.com/firebase/firebase-js-sdk/issues) or reach out to the personalized [Firebase support channel](https://firebase.google.com/support/).
> **NOTE:** While relatively stable, AngularFire is a [developer preview](https://angular.io/guide/releases#developer-preview) and is subject to change before general availability. Questions on the mailing list and issues filed here are answered on a <strong>best-effort basis</strong> by maintainers and other community members. If you are able to reproduce a problem with Firebase <em>outside of AngularFire's implementation</em>, please [file an issue on the Firebase JS SDK](https://github.com/firebase/firebase-js-sdk/issues) or reach out to the personalized [Firebase support channel](https://firebase.google.com/support/).
## Developer Guide

This developer guide assumes you're using the new tree-shakable AngularFire API, [if you're looking for the compatability API you can find the documentation here](docs/compat.md).
This developer guide assumes you're using the new tree-shakable AngularFire API, [if you're looking for the compatibility API you can find the documentation here](docs/compat.md).

[See the v7 upgrade guide for more information on this change.](docs/version-7-upgrade.md).

Expand Down Expand Up @@ -188,9 +191,3 @@ import { } from '@angular/fire/app-check';
</td>
</tr>
</table>

### Deploying your site

* Deploy to Firebase Hosting
* Angular Universal: Deploy to Cloud Functions
* Angular Universal: Deploy to Cloud Run
617 changes: 316 additions & 301 deletions package-lock.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@angular/fire",
"version": "17.0.0",
"version": "17.1.0",
"description": "Angular + Firebase = ❤️",
"private": true,
"scripts": {
Expand Down Expand Up @@ -55,7 +55,7 @@
"@angular/platform-browser-dynamic": "^17.0.0",
"@angular/router": "^17.0.0",
"@schematics/angular": "^17.0.0",
"firebase": "^10.7.0",
"firebase": "^10.12.0",
"firebase-admin": "^9.11.1",
"firebase-functions": "^3.6.0",
"firebase-tools": "^13.0.0",
Expand Down
2 changes: 2 additions & 0 deletions src/app/firebase.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"firebase-tools": { "optional": true }
},
"dependencies": {
"firebase": "^10.7.0",
"firebase": "^10.12.0",
"rxfire": "^6.0.5",
"@angular-devkit/schematics": "^17.0.0",
"@schematics/angular": "^17.0.0",
Expand Down
40 changes: 1 addition & 39 deletions src/schematics/common.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { SchematicContext, SchematicsException, Tree } from '@angular-devkit/schematics';
import * as semver from 'semver';
import { FirebaseHostingSite, FirebaseRc } from './interfaces';
import { FirebaseHostingSite } from './interfaces';

export const shortSiteName = (site?: FirebaseHostingSite) => site?.name?.split('/').pop();

Expand All @@ -18,44 +18,6 @@ export const overwriteIfExists = (
}
};

function emptyFirebaseRc() {
return {
targets: {}
};
}

function generateFirebaseRcTarget(firebaseProject: string, firebaseHostingSite: FirebaseHostingSite|undefined, project: string) {
return {
hosting: {
[project]: [
shortSiteName(firebaseHostingSite) ?? firebaseProject
]
}
};
}

export function generateFirebaseRc(
tree: Tree,
path: string,
firebaseProject: string,
firebaseHostingSite: FirebaseHostingSite|undefined,
project: string
) {
const firebaseRc: FirebaseRc = tree.exists(path)
? safeReadJSON(path, tree)
: emptyFirebaseRc();

firebaseRc.targets = firebaseRc.targets || {};
firebaseRc.targets[firebaseProject] = generateFirebaseRcTarget(
firebaseProject,
firebaseHostingSite,
project
);
firebaseRc.projects = { default: firebaseProject };

overwriteIfExists(tree, path, stringifyFormatted(firebaseRc));
}

export function safeReadJSON(path: string, tree: Tree) {
try {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
Expand Down
10 changes: 9 additions & 1 deletion src/schematics/deploy/actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,8 @@ export default async function deploy(
options: DeployBuilderOptions,
firebaseToken?: string,
) {
const legacyNgDeploy = !options.version || options.version < 2;

if (!firebaseToken && !process.env.GOOGLE_APPLICATION_CREDENTIALS) {
await firebaseTools.login();
const user = await firebaseTools.login({ projectRoot: context.workspaceRoot });
Expand All @@ -401,6 +403,12 @@ export default async function deploy(
console.log(`Using Google Application Credentials.`);
}

if (legacyNgDeploy) {
console.error(`Legacy ng-deploy Firebase is deprecated.
Please migrate to Firebase Hosting's integration with Angular https://firebase.google.com/docs/hosting/frameworks/angular
or the new Firebase App Hosting product https://firebase.google.com/docs/app-hosting`);
}

if (prerenderBuildTarget) {
const run = await context.scheduleTarget(
targetFromTargetString(prerenderBuildTarget.name),
Expand Down Expand Up @@ -465,7 +473,7 @@ export default async function deploy(

firebaseTools.logger.logger.add(logger);

if ((!options.version || options.version < 2) && serverBuildTarget) {
if (legacyNgDeploy && serverBuildTarget) {
if (options.ssr === 'cloud-run') {
await deployToCloudRun(
firebaseTools,
Expand Down
4 changes: 2 additions & 2 deletions src/schematics/interfaces.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { RuntimeOptions } from 'firebase-functions';

export const enum FEATURES {
Hosting,
Authentication,
Analytics,
AppCheck,
Expand All @@ -12,10 +11,10 @@ export const enum FEATURES {
Firestore,
Storage,
RemoteConfig,
VertexAI,
}

export const featureOptions = [
{ name: 'ng deploy -- hosting', value: FEATURES.Hosting },
{ name: 'Authentication', value: FEATURES.Authentication },
{ name: 'Google Analytics', value: FEATURES.Analytics },
{ name: 'App Check', value: FEATURES.AppCheck },
Expand All @@ -26,6 +25,7 @@ export const featureOptions = [
{ name: 'Performance Monitoring', value: FEATURES.Performance },
{ name: 'Cloud Storage', value: FEATURES.Storage },
{ name: 'Remote Config', value: FEATURES.RemoteConfig },
{ name: 'VertexAI (preview)', value: FEATURES.VertexAI },
];

export const enum PROJECT_TYPE { Static, CloudFunctions, CloudRun, WebFrameworks }
Expand Down
Loading
Loading