我已将AngularJS官方文档更改为使用Firebase(手机教程).
这是我的应用程序的路由器:
angular.module('phonecat', ['firebase']).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/phones', {
templateUrl: 'partials/phone-list.html',
controller: PhoneListCtrl,
authRequired: false,
pathTo: '/phones'
}).
when('/phones/:age', {
templateUrl: 'partials/phone-detail.html',
controller: PhoneDetailCtrl,
authRequired: true,
pathTo: '/phones/:phoneId'
}).
when('/login', {
templateUrl: 'partials/login.html',
controller: LoginCtrl,
authRequired: false,
pathTo: '/login'
}).
otherwise({
redirectTo: '/phones'
}); }]);
Run Code Online (Sandbox Code Playgroud)
这就是控制器的样子 - 但它可能不正确.登录函数被调用,但我不知道下一步该怎么做.我应该如何将用户从登录页面重定向到phone-detail.html页面?
'use strict';
function PhoneListCtrl($scope, angularFire, angularFireAuth) {
var url = 'https://<link>.firebaseio.com/';
var promise = angularFire(url, $scope, 'phones', []);
angularFireAuth.initialize(url, {scope: $scope, name: "user"});
}
function PhoneDetailCtrl($scope, $routeParams, angularFire, angularFireAuth) {
var …Run Code Online (Sandbox Code Playgroud) 我创建了一个直接从客户端访问Salesforce REST API的AngularJS服务.但是,由于相同的原产地限制,我无法使其正常工作.即使访问非经过身份验证的REST服务并尝试$ http,$ http.json和Ajax.我也尝试了很多Json,Jsonp等的组合.
鉴于我有这么多问题,我认为我的一般方法是不正确的.也许我需要为此设置代理服务器?我的后端是Firebase,所以我目前没有自己的服务器.
我不相信Salesforce API支持COR,我无法改变它.
这是我尝试使用$ http和Ajax的一个例子.
return $http.jsonp('https://na1.salesforce.com/services/data/',{
headers: {
'Content-type': 'application/json', 'Accept': 'application/json'
}}).
success(function (data, status, headers, config) {
callback(data);
console.debug(data.json);
}).
error(function (data, status, headers, config) {
console.debug("getVersions: failed to retrieve data: "+eval(data));
});
$.ajax({
url: 'https://na15.salesforce.com/services/data',
type: "GET",
dataType: "jsonp",
beforeSend: function(xhrObj){
xhrObj.setRequestHeader("Content-Type","application/json");
xhrObj.setRequestHeader("Accept","application/json");
xhrObj.setRequestHeader("X-Requested-With", "XMLHttpRequest");
},
success: function (data) {
console.debug(data);
callback(data);
},
error: function(data) {
}
});
Run Code Online (Sandbox Code Playgroud) 我正在使用AngularFire获取输入并将其保存到我的Firebase数据库.目前,我有一个输入用于输入服务的价格,如此(我使用输入类型的"文本"而不是"数字",因为我不希望它在旧浏览器中导致问题):
<p><input type="text" placeholder="Enter your monthly price here" ng-model="priceMonthly" required/></p>
Run Code Online (Sandbox Code Playgroud)
但是,当我在表单提交(使用更新函数)时将其写入我的Firebase时,它会将值写$scope.priceMonthly为字符串而不是整数.将此值写为整数而不是字符串的最佳方法是什么?
以下代码库用于使用firebase 2.3.1和Angularfire 1.1.3
Var fb = new firebase("https://database name.firebaseio.com");
var fbObj = $firebaseObject(fb.child("users/" + userId));
Run Code Online (Sandbox Code Playgroud)
我升级到firebase3.0和Angularfire 1.2.
因此,以下是上述代码的修改方式:
var config = {/* ... */};
firebase.initializeApp(config);
var fb = firebase.database().ref();
var fbObj = $firebaseObject(fb.child("users/" + userId))
Run Code Online (Sandbox Code Playgroud)
然而,上面的代码抛出了错误,例如a.ref在实例化fbObj时不是函数.
请建议.
我正在尝试找出如何在 TypeScipt 中获取 Firebase Authenticated 用户的 uid:
<div> {{ (user | async)?.uid }} </div>
Run Code Online (Sandbox Code Playgroud)
我有以下 TS 代码:
import { AngularFireAuth } from 'angularfire2/auth';
import * as firebase from 'firebase/app'
@Component({
selector: 'app-user-portal',
templateUrl: './user-portal.component.html',
styleUrls: ['./user-portal.component.css']
})
export class UserPortalComponent implements OnInit {
user: Observable<firebase.User>;
constructor(
public afAuth: AngularFireAuth
) {
this.user = afAuth.authState;
}
ngOnInit() {
}
}
Run Code Online (Sandbox Code Playgroud)
我读过的所有内容都表明我需要访问...的 id 属性
this.afAuth.auth.currentUser.uid
Run Code Online (Sandbox Code Playgroud)
......但这似乎没有暴露。如果我把它改成...
this.afAuth.auth.currentUser.toJSON()
Run Code Online (Sandbox Code Playgroud)
...并将其发送到控制台,然后我确实看到了一个 uid 属性。我怎样才能得到那个财产?
这甚至是为用户获取 uid 的正确方法吗?将...
this.afAuth.auth.currentUser.getIdToken()
Run Code Online (Sandbox Code Playgroud)
... 会更好?如果这样更好,我也看不出如何从中获取 uid。建议?
firebase typescript angularfire firebase-authentication angular
嗨,我是角度和firebase的新手,我从今天早上起就一直在努力解决一个简单的代码问题,我搜索了这个问题,但我找不到任何对我有用的解决方案(有时候我甚至都不懂它,我是一个真正的初学者)我在控制台上的错误如下:
未捕获错误:模块"AppModule"导入的意外值"AngularFireDatabase".请添加@NgModule注释.在位于eval(compiler.js:15225)的syntaxError(compiler.js:485)处,位于JitCompiler._compileModuleAndComponents的JitCompiler._loadModules(compiler.js:34255)的CompileMetadataResolver.getNgModuleMetadata(compiler.js:15200)的Array.forEach()处(compiler.js:34216)位于Eval(main.ts)的PlatformRef.bootstrapModule(core.js:5568)的CompilerImpl.compileModuleAsync(platform-browser-dynamic.js:230)上的JitCompiler.compileModuleAsync(compiler.js:34110) :11)
这是我的代码: app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AngularFireModule } from "angularfire2";
import { AngularFireDatabaseModule, AngularFireDatabase } from "angularfire2/database";
import { AppComponent } from './app.component';
import { environment } from '../environments/environment';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AngularFireModule.initializeApp(environment.firebase),
AngularFireDatabase
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
app.component.ts
import { Component } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { AngularFireDatabase } …Run Code Online (Sandbox Code Playgroud) firebase typescript angularfire firebase-realtime-database angular
我开始绝望了,我有我的小 Angular 6 应用程序。我已经从(我认为是)angularfire2 v3 升级到 @angular/fire
我根据从 v4 到 v5 的升级(使用并包括相应的 AngularFire 库)进行了所有更改,并删除了所有 AngularFireObservables/Objects
我仍然有一个编译错误:
...
ERROR in Cannot read property 'getSymbolByModule' of undefined
ERROR in D:/Code/workouttracker/src/app/app.routes.ts (70,22): Generic type 'Mod
uleWithProviders<T, any>' requires 2 type argument(s).
ERROR in D:/Code/workouttracker/src/app/service/user.service.ts (27,24): 'fireba
se' refers to a UMD global, but the current file is a module. Consider adding an
import instead.
D:/Code/workouttracker/src/app/service/user.service.ts (28,27): 'firebase' refer
s to a UMD global, but the current file is a module. Consider adding an …Run Code Online (Sandbox Code Playgroud) 每当我尝试添加时都显示错误
ng add angular/fire@next
Run Code Online (Sandbox Code Playgroud)
使用命令行界面
编译@angular/fire : main 作为 umd
编译@angular/fire : 模块为 esm5
编译@angular/fire/auth : es2015 为 esm2015
编译 @angular/fire/auth : main as umd
编译 @angular/fire/auth : 模块为 esm5
编译@angular/fire/auth-guard : es2015 为 esm2015
编译@angular/fire/auth-guard : main as umd
编译 @angular/fire/auth-guard : 模块为 esm5
编译@angular/fire/database : es2015 为 esm2015
编译@angular/fire/database : main as umd
编译@angular/fire/database : 模块为 esm5
编译@angular/fire/database-deprecated : es2015 为 esm2015
编译@angular/fire/database-deprecated : main as umd
错误:试图用 ngcc 备份文件覆盖 E:/portfolio/node_modules/@angular/fire/bundles/database.umd.js.__ivy_ngcc_bak,这是不允许的。在 InPlaceFileWriter.writeFileAndBackup (E:\portfolio\node_modules@angular\compiler-cli\ngcc\src\writing\in_place_file_writer.js:36:23) 在 E:\portfolio\node_modules@angular\compiler-cli\ngcc\src\写入\in_place_file_writer.js:30:69 at Array.forEach () …
这是 cmd npm run serve 上的错误:ssr
I'm getting the error 'Can't find module 'require("./server/main") while hit the command "npm run server:ssr".
but "npm run build:ssr" execute successfully.
Please Help anyone.
PS C:\Users\DELL\ion\portfolio\portfolio> npm run serve:ssr
> portfolio@0.0.0 serve:ssr C:\Users\DELL\ion\portfolio\portfolio
> node dist/server
internal/modules/cjs/loader.js:628
throw err;
^
Error: Cannot find module 'require("./server/main")'
Require stack:
- C:\Users\DELL\ion\portfolio\portfolio\dist\server.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:625:15)
at Function.Module._load (internal/modules/cjs/loader.js:527:27)
at Module.require (internal/modules/cjs/loader.js:683:19)
at require (internal/modules/cjs/helpers.js:16:16)
at webpackUniversalModuleDefinition
(C:\Users\DELL\ion\portfolio\portfolio\dist\server.js:3:28)
at Object.<anonymous>
(C:\Users\DELL\ion\portfolio\portfolio\dist\server.js:10:3)
at Module._compile (internal/modules/cjs/loader.js:776:30)
at Object.Module._extensions..js
(internal/modules/cjs/loader.js:787:10)
at …Run Code Online (Sandbox Code Playgroud) angularfire server-side-rendering angular-universal angular8
我现在处理这个问题已经快两周了。我尝试了很多解决方法,但似乎没有一个有效。我已经安装angular-fire并安装firebase到它的最新版本,尝试过ng add @angular/fire,配置自定义webpack.config.ts,尝试回滚到每个建议的先前版本。没有人解决这个问题。
实际错误:
de-10@de10-LIFEBOOK-A555:~/Desktop$ node dist/server.js
internal/modules/cjs/loader.js:797
throw err;
^
Error: Cannot find module 'firebase/app'
Require stack:
- /home/de-10/Desktop/dist/server.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:794:15)
at Function.Module._load (internal/modules/cjs/loader.js:687:27)
at Module.require (internal/modules/cjs/loader.js:849:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/home/de-10/Desktop/dist/server.js:125276:18)
at __webpack_require__ (/home/de-10/Desktop/dist/server.js:20:30)
at Module.<anonymous> (/home/de-10/Desktop/dist/server.js:125199:70)
at __webpack_require__ (/home/de-10/Desktop/dist/server.js:20:30)
at Module.<anonymous> (/home/de-10/Desktop/dist/server.js:124984:78)
at __webpack_require__ (/home/de-10/Desktop/dist/server.js:20:30) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/home/de-10/Desktop/dist/server.js' ]
}
Run Code Online (Sandbox Code Playgroud)
我不能放弃 Firebase 因为然后我面临:
ERROR in ../node_modules/@angular/fire/auth/auth.d.ts:4:28 - error TS2307: Cannot find module 'firebase/app'.
4 …Run Code Online (Sandbox Code Playgroud) angularfire ×10
firebase ×7
angular ×4
angularjs ×3
angularfire2 ×2
typescript ×2
angular8 ×1
javascript ×1
salesforce ×1