我FirebaseSimpleLogin用来创建用户并处理身份验证.
当我尝试通过该$createUser()方法创建一个简单登录的新用户时,如果已经使用了电子邮件地址,firebase将不会创建用户.但是,$set()在创建它们之后,我还使用将创建的用户保存到我的firebase中,并将其user.uid用作密钥.当尝试写入数据库时,即使用户名不是唯一的,firebase也会保存记录,因为简单登录只需要电子邮件和密码.那么,当用户名不被用作用户对象的密钥时,如何验证用户名是否唯一?
我正在创建这样的新用户:
$scope.createUser = function() {
$scope.auth.$createUser('trinker@gmail.com', 'password').then(function(user, err) {
if (!err) {
ref.child('users/' + user.uid).set({
email: user.email,
username: user.username
});
console.log("success!");
}else{
console.log(err.message);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我的用户对象如下所示:
{
"users" : {
"simplelogin:28" : {
"email" : "trinker@gmail.com",
"username" : "jtrinker"
},
"simplelogin:30" : {
"email" : "test@gmail.com",
"username" : "jtrinker"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我需要使用uid作为每个用户的密钥,但我仍然需要用户名是唯一的.
如果一个对象中的属性对于另一个对象内的属性不是唯一的,我怎么能阻止firebase保存记录?
angularjs firebase firebase-security angularfire firebase-realtime-database
我需要在我的Rails应用程序中运行以下代码:
ActiveSupport::TimeZone["Central Time (US & Canada)"].parse(game.date).utc.to_date.strftime("%_m/%d")[1..-1]
Run Code Online (Sandbox Code Playgroud)
游戏在哪里 @games.each do |game|
但这不起作用,我得到错误,TypeError: no implicit conversion of ActiveSupport::TimeWithZone into String.
但是,我可以运行:
ActiveSupport::TimeZone["Central Time (US & Canada)"].parse("2014-04-11 12am").utc.to_date.strftime("%_m/%d")[1..-1]
Run Code Online (Sandbox Code Playgroud)
返回"4/11"
如何使用上面的代码与`game.date'而不是硬编码的字符串?
编辑
游戏对象如下所示(来自db/seeds.rb):
Game.create(id: 9, date: "2014-04-11 12am", time: "705PM", opponent: "Jacksonville", away: false, event: "friday night fireworks")
Run Code Online (Sandbox Code Playgroud)
编辑2
在我做game.date的rails控制台中,它返回:
Fri, 11 Apr 2014 00:00:00 UTC +00:00
Run Code Online (Sandbox Code Playgroud)
所以它似乎不是一个字符串.
我正在建立一个单页网站,通过锚标签分成几个部分.当您单击导航链接时,它会平滑滚动到该部分(仅限资金区域和我们已完成),但是,当您单击链接时,它似乎有大约50%的时间,它平滑滚动到闪烁的背景图像jQuery向上或向下滚动.
对我来说,似乎HTML正试图立即进入锚点,因此闪烁,但随后jQuery说,举起,我需要慢慢滚动.
我不知道如何解决这个问题.
jQuery的:
// SlowScroll Funding Areas
$(document).ready(function(){
// 'slowScrollTop' is the amount of pixels #teamslowScroll
// is from the top of the document
var slowScrollFunding = $('#funding-areas').offset().top;
// When #anchor-aboutus is clicked
$('#anchor-funding-areas').click(function(){
// Scroll down to 'slowScrollTop'
$('html, body, #home-wrap').animate({scrollTop:slowScrollFunding}, 1000);
});
});
// SlowScroll About Us
$(document).ready(function(){
// 'slowScrollTop' is the amount of pixels #slowScrollTop
// is from the top of the document
var slowScrollTop = $('#about-us').offset().top + 446;
// When #anchor-aboutus is clicked
$('#anchor-aboutus').click(function(){
// …Run Code Online (Sandbox Code Playgroud) 我刚刚在我的Windows 7机器上通过chocolatey安装了elixir.在C目录的根目录下,在管理员命令提示符下,我运行:
c:\> cinst elixir
Run Code Online (Sandbox Code Playgroud)
这成功安装了erlang和elixir - v.1.0.4.没有失败,所有成功的消息.然后我重新启动命令提示符并运行
c:\> iex.bat
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
'iex.bat'未被识别为内部或外部命令,可操作程序或批处理文件.
我经常运行一台mac,所以当谈到Windows时我很无知.也尝试iex在git bash中运行,但没有运气.我如何运行iex?
我正在编写Code School的Ember.js课程,他们首先在控制器中使用过滤器方法,解释控制器用于装饰模型.但是在接下来的部分中,他过滤了Route中的记录,将方法链接到'store.findAll'.
我对Ember比较新,所以这很令人困惑.在第一个实例中,我们有一系列产品,我们希望过滤这些产品以检索要在索引模板中发布的onSale产品数组.我们在索引路线上检索了模型:
App.IndexRoute = Ember.Route.extend({
model: function() {
return this.store.findAll('product');
}
});
Run Code Online (Sandbox Code Playgroud)
然后,Route将产品发送到控制器,在那里我们可以装饰数据并将其减少到只有3个产品.
App.IndexController = Ember.ArrayController.extend({
onSale: function() {
return this.filterBy('isOnSale').slice(0, 3);
}.property('@each.isOnSale')
});
Run Code Online (Sandbox Code Playgroud)
我明白这一点.但随后我们创建了一个指向'products/onsale'模板的链接,该模板将列出所有onsale产品.我们创建了一个ProductsOnsaleRoute,我们使用modelFor从ProductsRoute中提取父模型,然后我们继续在Route中过滤而不是创建ProductsOnsaleController并在那里过滤.对此有解释吗?
App.ProductsOnsaleRoute = Ember.Route.extend({
model: function() {
return this.modelFor('products').filterBy('isOnSale');
}
});
Run Code Online (Sandbox Code Playgroud)
我想我的问题是......对我来说创建一个ProductsOnsaleController并在那里过滤会更好吗?
App.ProductsOnsaleController = Ember.ArrayController.extend({
sale: function() {
return this.filterBy('isOnSale');
}
}):
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
我想向我无法控制的外部API发出GET请求.由于API的安全性,我的react应用程序无法直接向端点发出ajax请求.因此,我想创建一个简单的代理作为证明这里
我package.json file看起来像这样:
{
"name": "my-stack",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^15.6.1",
"react-dom": "^15.6.1",
"react-router-dom": "^4.2.2",
"react-scripts": "1.0.13"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
},
"proxy": {
"https://gold-feed.com/paid/*": {
"target": "https://gold-feed.com/paid",
"changeOrigin": true
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我的ajax请求看起来像这样:
const apiUrl = 'https://gold-feed.com/paid/<apiID>/all_metals_json_usd.php';
jQuery.ajax({
method: 'GET',
url: apiUrl,
success: (item) => {
this.props.addItem(item);
}
});
Run Code Online (Sandbox Code Playgroud)
但它似乎没有做任何事情.我仍然收到以下错误:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' …Run Code Online (Sandbox Code Playgroud) 我是第一次在Firebase中开发一个应用程序,并且很好奇我应该如何在两个对象a user和a 之间建模数据post.我来自更多的关系数据库背景,不仅好奇这是如何在非关系数据库中完成的,而且特别是如何在Firebase中设置两个对象之间的关系.
例如,我的应用程序有很多用户,每个用户创建许多帖子.
User {
firstName: String,
lastname: String,
userName: String
}
Post {
title: String,
content: String,
date: Date,
writtenBy: [User object?]
}
Run Code Online (Sandbox Code Playgroud)
我应该如何在Firebase中构建这两个对象,以便帖子属于用户,但是无论用户如何都可以查询所有帖子,并且可以在不中断其他对象的数据和/或关系的情况下编辑用户和帖子对象?
我应该如何通过firebase创建新的"关系"对象:
sync.$set({userA: {
firstname: "Billy",
lastName: "Bob",
userName: "BillyBob",
Posts: {
// .....
}
}
});
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在为Firebase和AngularFire创建一个由用户,帖子和评论组成的数据结构.我的印象是用户的密钥/ ID是用户名,而评论和帖子的密钥/ ID将是自动生成的firebase密钥.
我一直在研究angularfire文档,并对$push()使用该方法时添加到对象的自动生成的键(name())感到困惑.
查看firebase网站上的一些示例,我看到Users对象的示例没有自动生成的密钥 - 单个用户的密钥是用户名 - 但同时添加密钥数组通过的对象 $push
我的问题是:
1)我应该一直使用firebase自动生成的密钥吗?如果没有,那么如何添加新用户,因为$push()自动创建密钥,并$set()重置所有用户?
2)$id和之间有什么关系name()?
示例数据
来自https://www.firebase.com/docs/web/guide/saving-data.html
文档显示以下Users对象:
{
"users": {
"alanisawesome": {
"date_of_birth": "June 23, 1912",
"full_name": "Alan Turing"
},
"gracehop": {
"date_of_birth": "December 9, 1906",
"full_name": "Grace Hopper"
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何在不重置当前用户$set()或添加angularfire id的情况下添加更多用户push()?
然后是一个带有生成id的Posts对象:
{
"posts": {
"-JRHTHaIs-jNPLXOQivY": {
"author": "gracehop",
"title": "Announcing COBOL, a New Programming Language"
},
"-JRHTHaKuITFIhnj02kE": {
"author": "alanisawesome", …Run Code Online (Sandbox Code Playgroud) 我是Node和Express的新手,其他与构建带有节点request和response参数的Web应用程序相关的层实际上让我感到困惑.我的困惑在于这两个参数通常存在于函数中,但通常不会声明其中的一个或两个.此外,大多数情况下会抛出一个额外的参数,比如'next'或其他什么.例如,我有一个API的以下路由器:
router.route('/teams')
// create a team at POST http://localhost:8080/api/teams
.post(function(req, res) {
var team = new Team();
team.name = req.body.name;
team.location = req.body.location;
// save the new team and check for errors
team.save(function(err) {
if (err) {
res.send(err);
};
res.json({ message: 'Team created!' });
});
})
// GET all the teams at GET http://localhost:8080/api/teams
.get(function(req, res) {
Team.find(function(err, teams){
if (err) {
res.send(err);
};
res.json(teams);
});
});
Run Code Online (Sandbox Code Playgroud)
双方.post并.get 调用一个函数req,并 …
我刚刚学习Ember,我对计算属性有点困惑.指南中的所有内容都使用字符串,比如使用名字和姓氏创建全名的计算属性等.无论如何,我对如何使用整数感到困惑,因为似乎语法几乎要求使用字符串.
举个例子,我的控制器上有一个属性叫做count.
import Ember from 'ember';
export default Ember.Controller.extend({
count: 0,
counter: Ember.computed('count', function() {
var num = `${this.get('count')}`;
var newNum = parseInt(num) + 1;
this.set('count', newNum);
return this.get('count');
})
});
Run Code Online (Sandbox Code Playgroud)
我知道这段代码非常糟糕,我只是想说明我正在尝试做什么并且失败了.为什么Ember.computed将字符串作为其第一个参数?
为什么我必须使用字符串this.get,this.set当我使用整数而不是字符串?我必须手动解析int或者它返回一个字符串,为什么它将我的count属性转换为字符串?
无论如何,在我跑步时的灰烬检查员
$E.get('count')
它确实成功添加1,但无法继续添加1,这使我认为它不会更新实际count属性.
非常感谢.我很感激帮助.