我对Firebase定价模型有点困惑,特别关注的是连接或更精确的并发连接.
让我们举一个名为FanZONE的iOS移动应用程序示例:
用户将在足球比赛期间创建组.他们将评论实际游戏,并立即在每个成员屏幕上显示评论.
此方案是否意味着参与评论/查看的每个用户都计算一个连接?
因此,如果一个群组包含100个主动关注屏幕并且不时评论的用户,则每90分钟有100个连接?
那些在后台拥有应用程序并且应用程序每5分钟检查一次得分的用户怎么办?这种连接是否也是90分钟,或者每5分钟只有一小部分时间?
在v1.0 API中,我能够通过他们的Facebook ID获取这样的朋友:
{
"name": "Somename SomeSurname",
"id": "100007797060798"
}
Run Code Online (Sandbox Code Playgroud)
在v2.0中,我只能使用taggable_friends来获取这些信息,但是我必须在文档中遗漏了一些东西,因为我得到的id是这样的(id总是不同的):
{
"id": "AaKJ-QN8OlY3m-2DHeVnc5oQZFnx_V0ptUF8XFEstr3EcS1LltvAx0_xptve3DWc_vI1zP0s4RhVMOTk1EqDvzCHMkEqFRMIkuXtyXe5d9O1-Q",
"name": "Somename someSurname"
}
Run Code Online (Sandbox Code Playgroud)
有人能指出我可以在哪里找到真正的身份证吗?
据我所知,浏览器没有可用的信息来查找客户端的IP地址,而无需另外调用其他资源.
有没有办法存储客户端的IP地址?我的意思是与firebase.timestamp占位符的工作方式类似.
如果我有1000多个测试的场景,并且想要只运行它们的选定部分我可以使用fdescribe.
其余的测试被跳过,这很好但是它们仍然污染了控制台输出.如何抑制跳过测试的控制台输出?
我有相当大的数据集,可能有数百万个对象,我需要触发child_added事件并获取最后添加的子节点.但是,无论何时启动服务,它都会为数据集中的每个初始子项触发一次事件.
我该如何避免这种行为?
编辑:
建议的解决方案并没有解决问题 - 在我看来它只是忽略了它.在我的具体情况下,我将对其他对象的唯一引用存储为a name,这value是其他重要数据.记录的优先级设置为我的案例时间戳中的特定数字.我使用它来检索记录以构建时间轴,因此我需要选择使用自定义时间戳保存新对象 - 不仅是当前时间戳..on()事件的监听者child_added完全符合需要,除了在开始时取出所有孩子.在我看来,这个功能在任何大型系列上都绝对没有意义.
我的交易有问题.事务中的数据始终为null,并且更新处理程序仅调用一次.该文件说:
为此,您将传递transaction()一个更新函数,该函数用于将当前值转换为新值.如果另一个客户端在成功写入新值之前写入该位置,则将使用新的当前值再次调用更新函数,并将重试写入.这将反复发生,直到您的写入成功而没有冲突,或者您通过不从更新函数返回值来中止事务
现在我知道现在没有其他客户端访问该位置.其次,如果我正确阅读文档,如果无法检索和更新数据,则应多次调用updateCounters函数.
另一件事 - 如果我取出条件if (counters === null),执行将失败,因为计数器是null在随后的尝试中事务完成 - 检索数据并进行更新.
简单的once - set在这个位置工作很好,但它不安全.
请问我错过了什么?
这是代码
self.myRef.child('counters')
.transaction(function updateCounters(counters){
if (counters === null) {
return;
}
else {
console.log('in transaction counters:', counters);
counters.comments = counters.comments + 1;
return counters;
}
}, function(error, committed, ss){
if (error) {
console.log('transaction aborted');
// TODO error handling
} else if (!committed){
console.log('counters are null - why?');
} else {
console.log('counter increased',ss.val());
}
}, true);
Run Code Online (Sandbox Code Playgroud)
这是该位置的数据
counters:{ …Run Code Online (Sandbox Code Playgroud) 如果我有一个私人注册表,例如Artifactory,与开发团队共享RW密钥的最佳方法是什么?当然,不希望所有开发者都拥有Travis-CI使用的通用RW密钥或凭据。(每个开发人员都有自己的)。
我想用私钥加密凭据,然后将该密钥提供给Travis-ci。这样就可以安全地分发加密的凭据并在travis-ui中使用作业设置。然后Travis将解密凭据并将其用于作业。
凭据不会泄漏,DevOps人员不会手动更新UI设置中的所有密钥,开发人员可以设置新的Travis作业并在Travis-ui中使用加密版本。大家都很开心 可能吗?
是否有适用于iOS API的Firebase.push()方法,可用于Javascript或Java的API?
我在iOS的API参考中找不到它.
我需要的是根据时间戳(我更喜欢服务器而不是客户端时间戳)将数据推送到新的子位置,并在块中返回该引用.
在更新之前,是否可以在Kendo UI网格中访问和修改数据?
下面是一个例子来说明我的需求.在options.data包含发送的数据,但它已经被格式化字符串"models=%B7%22Id22%.... etc"没有真正方便的形式.
dataSource = new kendo.data.DataSource({
transport: {
read: {
...
},
update: {
url: baseURL + "update",
beforeSend: function(xhr, options){
xhr.setRequestHeader('API-KEY', apikey );
var modifiedData = doSomething(options.data);
return modifiedData;
},
dataType: "json",
method: "POST",
dataFilter: function(data){
... some data recieved modification
return JSON.stringify(somedata);
},
complete: function(e) {
....
}
},
Run Code Online (Sandbox Code Playgroud) 我是C的新手,我正试图抓住指针.我偶然发现了这个表达
char *foo = *(char **)bar;
Run Code Online (Sandbox Code Playgroud)
到底发生了什么?我明白*指针**是指向指针的指针,但我并不是真的得到了什么*(char **)bar
编辑:值得一提的是,bar被声明为const void*bar
firebase ×5
ios ×2
ajax ×1
android ×1
c ×1
facebook ×1
karma-runner ×1
kendo-grid ×1
kendo-ui ×1
travis-ci ×1