小编And*_*Lee的帖子

如何使用Firebase登录多个社交服务?

我希望用户能够使用多个不同的身份验证提供程序(例如Facebook,Twitter或Github)对我的Firebase应用程序进行身份验证.经过身份验证后,我希望用户无论使用哪种身份验证方法都可以访问同一帐户.

换句话说,我想将多个身份验证方法合并到我的应用程序中的单个帐户中.如何在Firebase应用中执行此操作?

authentication facebook-authentication firebase firebase-security

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

向一组用户授予对Firebase位置的访问权限

我在文档中找不到它,但是有没有办法定义一组用户并使用该组授予对不同位置的访问权限,而不是授予对单个用户的访问权限?

此致,LT

firebase

21
推荐指数
1
解决办法
7262
查看次数

我可以阻止Firebase set()覆盖现有数据吗?

如果我这样做,我的itemRef一切都很好:

itemRef.child('appreciates').set(newFlag);
itemRef.child('id').set(newId);
Run Code Online (Sandbox Code Playgroud)

itemRef的其他属性仍然是BUT,child_changed被调用两次

如果我这样做:

itemRef.set({appreciates:newFlag,id:newId});
Run Code Online (Sandbox Code Playgroud)

child_changed仅被调用一次,但我的其他属性被销毁.除了重新填充整个参考对象的笨拙之外,还有一种解决方法吗?

谢谢,

蒂姆

firebase

11
推荐指数
1
解决办法
8996
查看次数

为什么Facebook的JSONP回调以"/**/"开头

当我使用Facebook的Open Graph API时,我注意到Facebook生成的JSONP响应似乎在每个响应的开头都有一个无关的"/**/",如下所示:

URL: 
https://graph.facebook.com/SOME_ID?method=get&pretty=0&sdk=joey&callback=FB.__globalCallbacks.f1c77f051c

Response:
/**/ FB.__globalCallbacks.f887adeec(...);
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

jsonp facebook-graph-api

11
推荐指数
1
解决办法
1159
查看次数

AngularFire单个对象

在angularFire示例中,它显示了如何从firebase获取对象集合.

app.controller('ctrl', ['$scope', '$timeout', 'angularFireCollection',
  function($scope, $timeout, angularFireCollection) {    
    var url = 'https://ex.firebaseio.com/stuff';
    $scope.col = angularFireCollection(url);
  }
]);
Run Code Online (Sandbox Code Playgroud)

那只是一个对象呢?

我试过这样的事情:

  fb.child('stuff/'+id).on('value', function(snapshot) {
    $scope.obj = snapshot.val();
    console.log('hey got the value')
    console.log(snapshot.val())
  });
Run Code Online (Sandbox Code Playgroud)

似乎没有用.控制台正确输出对象值,但控制器不更新.

javascript angularjs firebase angularfire

9
推荐指数
1
解决办法
2276
查看次数

设计具有多对多和跨实体关系的Cloud Firestore架构

关于设计Firestore架构的一个简单问题:

我知道你必须使用正确的工具来完成工作,而Firestore不应该是一个关系数据库,但有没有建议的技术可以模拟多对多的关系?

例如:

我想建立一个物业管理应用程序

公司拥有属性,其中包含单位.层次结构在这里很简单.

因此,租户将随着时间的推移租用多个单位,每个单位将随着时间的推移拥有许多租户......所有这些都由租约封装,将1个单位与1个或更多租户联系起来.

单位可以拥有租约我猜,但是租户如何随着时间的推移看到他们所有的租约..租约有一个参考租户的子集合..是租户顶级?

只是寻找一些基本的建议..

或者只是使用关系数据库的GraphQL更好?

firebase google-cloud-firestore

8
推荐指数
1
解决办法
3730
查看次数

Firebase JSON安全和阵列

我们想在我们的(主要是非Firebase托管的)项目中使用Firepad,但我们遇到了一些麻烦,找出解决问题的最佳方法.

基本上,我们有很多用户,每个用户都可以是许多组的成员.这些"组"每个都有自己的Firepad,用户可以编辑.我们已经使用MySQL开发了一个深度开发的数据库结构,并且现在不想将我们的用户数据迁移到Firebase,所以我们认为我们会更有创意.

我们不希望用户能够编辑他们不属于的组的Firepad.因此,作为我们的身份验证令牌的一部分,我们认为我们会尝试发送用户ID和他们所属的组列表.然后,使用Firebase JSON安全系统,我们可以验证当前正在编辑的Firepad是否在用户所属的组列表中.

问题是,JSON系统似乎不接受很多命令.有没有的indexOf,我不能打电话hasChildauth变量.

我们如何确保用户只能编辑他们所属的群组的Firepad,而无需将所有数据迁移到Firebase?(或者维护数据库的两个副本 - 一个在MySQL上,一个在Firebase上)

firebase firepad

7
推荐指数
1
解决办法
1553
查看次数

如何查询Firebase以查找与字符串前缀匹配的键

由于firebase不支持任何空间索引,所以我使用geohash,有人在这里建议.Geohash正在使用角色来寻找附近的人物.

所以,假设我在w22qt4vhye1c w99qt4vdf4vc w22qt4vhzerctfirebase中有geohash存储,我想只查询接近哪个geohash w22qt4.

怎么做?

我知道firebase有startAt.我试过但不行.

UPDATE

将geohash存储到firebase

//Encode lat lng, result w22qt4vhye1c3
var geoHashLatLng = encodeGeoHash(lat,lng);
firebaseRef.child('/geohash/' + geoHashLatLng).set(id); 
Run Code Online (Sandbox Code Playgroud)

所以在json

  root
   - geohash
      - w22qt4vhye1c3
         - id
      - z99qt4vdf4vc
      - w22qt4vhzerct
Run Code Online (Sandbox Code Playgroud)

我的问题在这里.我只想查询从字符开始的geohash w22qt4.我们可以在firebase中这样做吗?

更新2 startAt()似乎不是以字符开头的查询...

示例:我有以下gehash

geohash节点

geohash
  - a123
  - a333
  - b123
  - c123
  - d123
Run Code Online (Sandbox Code Playgroud)

使用以下代码

var firebaseRef = new Firebase('https://test.firebaseio.com');
var query = firebaseRef.child('/geohash').startAt(null, 'a');
query.on('child_added', function(snapshot) {
    console.log(snapshot.name());
});
Run Code Online (Sandbox Code Playgroud)

会得到这个结果

startAt(null, 'a') //return a123, a333, b123, c123, d123 …
Run Code Online (Sandbox Code Playgroud)

firebase

7
推荐指数
1
解决办法
8279
查看次数

处理Firebase中的地理编码?

有没有人尝试在Firebase中存储和/或搜索地理编码(例如lat/long)?这是内置在MongoDB中的功能,而我正在考虑将Firebase用于后端,我需要知道如何在Firebase中处理这种情况.

谢谢!

geocoding firebase geofire

7
推荐指数
1
解决办法
3734
查看次数

为什么我的Firebase"child_added"事件显示为乱序?

我在同一条路径上有2个"限制"查询.我首先加载"limit(1)",然后加载"limit(50)".

当我加载第二个查询时,child_added事件不按顺序触发.相反,列表中的最后一项(由limit(1)返回的项)首先被触发,然后所有其他项按顺序触发,如下所示:

**Limit 1:**
new Firebase(PATH).limit(1).on('child_added', ...) 
Message 5  

**Limit 2:**
new Firebase(PATH).limit(50).on('child_added', ...) 
Message 5 
Message 1 
Message 2 
Message 3 
Message 4 
Run Code Online (Sandbox Code Playgroud)

我很困惑为什么在第二个限制操作中首先调用"消息5".为什么会发生这种情况,我该如何解决?

firebase

6
推荐指数
1
解决办法
2122
查看次数

与CodeMirror实时协作

我启动了这个小项目,在那里我将使用CodeMirror对代码进行实时协作.

我有一个msgs系统设置,因此很容易将对象从一个用户传递到另一个用户.我的问题是它与CodeMirror集成.我发现它有onchange的事件和replaceRange(string,from,to).

我将onchange对象传递给其他用户并使用replaceRange更新视图.问题是当使用replaceRange时,它会触发一个新的onchange并且它会前后发送msgs.任何人都知道是否有某种更新本地视图的方法,而不会触发onchange.或建议采取其他途径.(msgs系统已经设置好,并且很容易将javascript对象传递给其他客户端).

codemirror firebase firepad

5
推荐指数
2
解决办法
1980
查看次数

在Firebase中实现删除推文和喜欢/ upvote功能

继续本线程,在HN上:https://news.ycombinator.com/item? id = 5462769

通过firefeed规则文件阅读为我回答了很多问题,除了这两个:

  1. 不允许编辑现有的推文(".write":"!data.exists()").你怎么能让它不可编辑,但作者可以删除?
  2. 你如何安全地处理喜欢/不喜欢或upvoting/downvoting?如果用户之前没有修改过这个,那么写一个如果经过身份验证,验证增加/减少一个?那会怎么样?是否必须有一个编辑此内容的人员列表?我只是对这个特定的用例感到好奇,因为它似乎在很多应用程序中很常见,但在我看来,在firebase中实现起来真的很复杂吗?

javascript firebase firebase-security

5
推荐指数
1
解决办法
1062
查看次数

在POST请求中将空数组丢弃到Firebase

尝试使用Firebase REST API将哈希映射推送到列表时,将以静默方式删除任何具有空数组值的键:值对,例如:

curl -X POST -d '{"name": "Persists", "words": ["what", "is", "this"], "toBeDropped": []}' "https://fbdev.firebaseio.com/channels/example.json?auth=sometoken

Firebase数据结构中的结果:

{
 "random-id": {
    "name": "Persists",
    "words": ["what", "is", "this"]
  }
}
Run Code Online (Sandbox Code Playgroud)

这导致我们的客户端上的问题,因为他们期望toBeDropped是[],而不是null在这种情况下.

api rest firebase

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