标签: angularfire

如何停止angularFire将对象中键/值的数量限制为100?

我将Firebase对象填充为200个键/值对,然后使用ng-repeat显示它.相关代码是:

<ul>
  <li ng-repeat='(n, inst) in db.instances'>Instance {{n}}: {{inst.status}}</li>
</ul>

<script type='text/javascript'>
  angular.module('blah', ['firebase']).controller(
    'BlahCtrl', function BlahCtrl($scope, angularFire) {
      angularFire('https://blahblahblah.firebaseio.com/', $scope, 'db', {});
    }
  )
</script>
Run Code Online (Sandbox Code Playgroud)

加载页面似乎删除前100个键/值对.

我该如何防止这种行为?

angularjs firebase angularfire

2
推荐指数
1
解决办法
739
查看次数

使用Angularfire从Firebase列出内容的更有效方法?

我正在为D&D风格的RPG开发基于Web的角色创建工具.我正努力从我的firebase DB列出"Race".目前的结构如下:

|-ironkingdoms
|--Race
|---Dwarf
|-----RaceName:Dwarf
|-----Starting Attribuites
|------PHY:7
|------STR:8
|------POI:5
|---Human
|-----RaceName:Human
|-----Starting Attributes
|------PHY:6
|------STR:7
|------POI:4
Run Code Online (Sandbox Code Playgroud)

你明白了......我把"RaceName"放在那里,因为我不能为我的生活弄清楚如何让它列出所有"Race"的孩子.这是我的代码:

http://plnkr.co/edit/GhQn1e9bdCdAnKNsJZ1K?p=preview

<html ng-app="myapp">
        <head>
            <script src='https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.min.js'></script>
            <script src='https://cdn.firebase.com/v0/firebase.js'></script>
            <script src='https://cdn.firebase.com/libs/angularfire/0.5.0/angularfire.min.js'></script>
        </head>
        <body ng-controller="MainCtrl">
            Data:
            <div ng-repeat="item in data">{{item.RaceName}}</div>
            <p>
            <div>Data loaded: {{dataLoaded}}</div>
            <p>
            Messages:
            <div ng-repeat="msg in messages">{{msg}}</div>
            <script>
                var app = angular.module('myapp', ['firebase']);

                app.controller('MainCtrl', function($scope, $firebase) {
                  var ref = new Firebase("https://<yourFirebase>.firebaseio.com/Race");
                  $scope.data = $firebase(ref);
                  $scope.dataLoaded = "Not yet!";
                  $scope.messages = [];

                  $scope.data.$on("loaded", function() {
                    var keys = $scope.data.$getIndex();
                    ["Race"].forEach( …
Run Code Online (Sandbox Code Playgroud)

angularjs firebase angularfire

2
推荐指数
1
解决办法
1109
查看次数

$ firebaseSimpleLogin和会话无需重新登录

我使用$ firebaseSimpleLogin使用电子邮件/密码登录Firebase.

当我使用电子邮件/密码登录时,它工作得很好,我可以看到sessionkey被自动保存为cookie.

但是,想要记住登录,这样用户只需登录一次.所以我在auth期间加入了{rememberMe:true}.

如何在加载页面的开头检查会话是否仍处于活动状态?

firebase firebase-security angularfire

2
推荐指数
1
解决办法
462
查看次数

使用$ set()将用户对象添加到Firebase中的/ users

我目前正在尝试通过AngularFire $set()方法向Firebase添加新用户.我正在通过$createUserAngularFire 的方法创建新用户.我的代码看起来像这样:

$scope.createUser = function() {
      $scope.auth.$createUser('dolly@gmail.com', 'password').then(function(user, err) {
        if (err) {
          console.log('ERROR: ' + err);
        } else {
          sync.$set('users', user);
        }
      });
}
Run Code Online (Sandbox Code Playgroud)

这是一个创建新用户并将新用户对象放在用户内部:{..},但是,它还添加了一个仅复制数据的附加用户子对象 - 这是代码添加到Firebase的内容:

{
"users": {
    "email": "dolly@gmail.com",
    "id": "11",
    "isTemporaryPassword": false,
    "md5_hash": "xxxxxxxxxxxxxxx",
    "provider": "password",
    "sessionKey": "xxxxxxxxxxxxx",
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE0MDc5NDQ2NDYsInYiOjAsImQiOnsicHJvdmlkZXIiOiJwYXNzd29yZCIsImlkIjoiMTEiLCJ1aWQiOiJzaW1wbGVsb2dpbjoxMSIsImVtYWlsIjoiZG9sbHlAZ21haWwuY29tIiwibWQ1X2hhc2giOiIzsdrggfeedsaadrfcDc0ZDRhMTU5NTk2NzI1NzFmMDk2ZTZlNyIsImlzVGVtcG9yYXJ5UGFzc3dvcmQiOmZhbHNlLCJzZXNzaW9uS2V5IjoiM2MwMDNjODkxMDEzOWE5MjhlZTZjNWI1NjU5ZTRiZjMifSwiaWF0IjoxNDA3ODU4MjQ2fQ.p7-9GDtaNpBn1ICTLIUSwlPytaUGi-jyBgcO-LKHUys",
    "uid": "simplelogin:11",
    "user": {
    "email": "dolly@gmail.com",
    "id": "11",
    "isTemporaryPassword": false,
    "md5_hash": "xxxxxxxxxxxxxxx",
    "provider": "dfrggrssxxxxxxx",
    "sessionKey": "xxxxxxxxxxxxxxx",
    "uid": "simplelogin:11"
    }
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望我的用户对象看起来像firebase中的示例,除非每个用户键都是内部的 user.uid

users: {
    user1: {
      name: "Alice"
    },
    user2: { …
Run Code Online (Sandbox Code Playgroud)

firebase angularfire

2
推荐指数
1
解决办法
3482
查看次数

AngularFire访问子元素方法

我正在寻找一种方法来获取子元素的方法,而不是单独加载该元素.

假设我有一个Post模型,每个帖子都有评论.这就是我获得帖子模型的方法:

var post = $firebase(new Firebase(FIREBASE_URL + "/posts/" + post_name)).$asObject();
Run Code Online (Sandbox Code Playgroud)

每个帖子都有评论,因此我可以使用以下方式访问评论

post.$loaded(function () {
  var comments = post.comments;
}
Run Code Online (Sandbox Code Playgroud)

现在,如何将新元素推送到注释,而无需从Firebase单独加载模型?我应该能够做到以下但它不起作用:

comments.$add({text: "Hi, there"});
Run Code Online (Sandbox Code Playgroud)

是否有任何正确的方法来获取子元素的firebase方法,而无需返回服务器并获取注释?

firebase angularfire

2
推荐指数
1
解决办法
2230
查看次数

无法获得新的密码验证方法在AngularFire 0.9.0中工作?

我正在尝试在Angular Fire 0.9.0中使用新的身份验证方法,但我一定做错了.

我正在运行1.3.2的Angular,2.0.4的Firebase和0.9.0的Angular Fire.

ng-click在我的html中调用了登录功能.

这是我的js:

var app = angular.module("sampleApp", ["firebase"]);

app.controller('mainCtrl', function ($scope, $firebaseAuth) {

var ref = new Firebase('https://XXXX.xxx');

$scope.auth = $firebaseAuth(ref);

$scope.login = function() {
    $scope.num = 'loggin in';
    $scope.auth.$authWithPassword({
        email: 'xxx@xxx.xxx',
        password: 'yyyyy'
    }, function(err, authData) {
        if (err) {
            console.log(err);
            $scope.num = err;
        } else {
            console.log(authData);
        }
    });
};
Run Code Online (Sandbox Code Playgroud)

我没有在控制台中看到任何内容,也没有任何错误.所以我无法弄清楚如何调试我做错了什么.

当我登录$scope.auth到控制台时,它会显示该$authWithPassword方法.我无法让它发挥作用.

任何帮助,将不胜感激.

angularjs angularfire

2
推荐指数
1
解决办法
556
查看次数

立即模式使用firebase自动登录

当用户单击登录按钮时,将调用登录功能:

login: function() {
        ref.auth.$authWithOAuthPopup('facebook').then(user.setUser).catch(function(error) {
          console.error('Authentication failed: ', error);
        });
      }
Run Code Online (Sandbox Code Playgroud)

我使用登录按钮来避免弹出窗口阻止程序.

现在,每当用户访问我的网站或刷新页面时,他们都必须单击登录.如果他们之前已经登录过,有没有办法自动/立即登录?这样,如果立即登录失败,我只能提供登录按钮.

javascript facebook-login angularjs firebase angularfire

2
推荐指数
1
解决办法
1422
查看次数

使用带有OrderByChild的Firebase查询数据

我有以下数据结构

{
  "advisors" : {
    "0ea9bab6-415e-4900-8698-ac03a1ef4518" : {
      "description" : "",
      "price" : 0,
      "title" : ""
    },
    "cc31c353-ca6a-440d-b188-af2016f72aef" : {
      "description" : "",
      "price" : 0,
      "title" : ""
    },
    "d8403e9b-fb74-4425-874f-2d125cd07a68" : {
      "description" : "I know every corner in the arab countries.",
      "price" : "50",
      "title" : "Best guide in the middle east"
    }
  },
  "advisors-countries" : {
    "0ea9bab6-415e-4900-8698-ac03a1ef4518" : {
      "Angola" : "true"
    },
    "cc31c353-ca6a-440d-b188-af2016f72aef" : {
      "Angola" : "true"
    }
  },
Run Code Online (Sandbox Code Playgroud)

我想提出以下问题:在列表中给我安哥拉顾问的所有价格.

我尝试了下一个代码,仅检索Adola = true的Advisor的国家/地区.

var …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs firebase angularfire

2
推荐指数
1
解决办法
1141
查看次数

如何使用Ionic 3设置Firebase分析事件

我正在尝试使用firebase来获取分析事件,但我得到的只是session_start事件。我正在使用Firebase 离子插件

这是我的代码:

constructor(public navCtrl: NavController, private nav: NavController,
            private firebaseAnalytics: FirebaseAnalytics) {
    this.firebaseAnalytics.setEnabled(true);
    this.firebaseAnalytics.logEvent('home_page_viewed', {page: "dashboard"})
        .then((res: any) => console.log(res))
        .catch((error: any) => console.error(error));
    }
Run Code Online (Sandbox Code Playgroud)

因此,我希望在Firebase控制台中看到一个名为“ home_page_viewed”的事件,但我没有看到此事件。我所看到的只是session_start事件。

有人知道我该怎么办?

firebase angularfire ionic-framework angularfire2 ionic3

2
推荐指数
1
解决办法
2202
查看次数

使用AngularFireObject和switchMap

我真的不知道该如何解决。如何解决此错误?

in user.service.ts:
import { Injectable } from '@angular/core';

import { AngularFireDatabase, AngularFireList, AngularFireObject } from 'angularfire2/database';

import {AppUser} from './models/app.user';
import * as firebase from 'firebase';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class UserService {


  constructor(private db: AngularFireDatabase) { }

  save(user: firebase.User) {
    this.db.object('/users/' + user.uid).update({
      name: user.displayName,
      email: user.email
    });
  }

  get(uid: string): AngularFireObject<AppUser> {
    return this.db.object('/users/' + uid);
  }



in admin-auth-guard.service:

import { Injectable } from '@angular/core';
import { Observable } from …
Run Code Online (Sandbox Code Playgroud)

firebase angularfire firebase-authentication angular

2
推荐指数
3
解决办法
1604
查看次数