我正在使用Firebase和Node with Redux.我按如下方式从密钥加载所有对象.
firebaseDb.child('invites').on('child_added', snapshot => {
})
Run Code Online (Sandbox Code Playgroud)
这种方法背后的想法是我们从数据库中获取有效负载,并且只使用一个动作通过Reducers更新我的本地数据存储.
接下来,我需要收听关键邀请的任何新的或更新的孩子.然而,现在的问题是child_added事件触发所有现有密钥以及新添加的密钥.我不想要这种行为,我只需要新密钥,因为我检索了现有数据.
我知道child_added通常用于这种类型的操作,但是,我希望减少触发的动作数量,并因此触发呈现.
实现这一目标的最佳模式是什么?
谢谢,
我在使用Firebase时遇到了Android应用程序的这个戏剧性问题.1.我的应用程序在第一次启动时收到令牌2.我能够从firebase控制台向注册令牌发送通知3.如果我尝试在步骤2之后再次使用控制台发送通知.它向我显示"未注册令牌"在第二次尝试之后.
我已经在清单中存在所有必要的配置,并且google service.json文件也已使用正确的配置.我相信事情是正确的,因为应用程序能够接收一次通知,问题才会在此之后开始.
更新1:如果我卸载应用程序并重新安装它,那么我也只能收到一次通知.
那些想要查看代码的人,这就是我获取令牌的方式:
@Override
public void onTokenRefresh() {
//Getting registration token
refreshedToken = FirebaseInstanceId.getInstance().getToken();
//Displaying token on logcat
Log.d(TAG, "Refreshed token: " + refreshedToken);
saveDeviceToken(refreshedToken);
}
Run Code Online (Sandbox Code Playgroud)
这只能在第一次启动时调用,之后,我还没有看到它被调用(我认为这是预期的行为).
收到的OnMessage也会在第一次通知时被调用,然后它永远不会被取消:
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d("FCM", "From: " + remoteMessage.getFrom());
if (remoteMessage.getNotification() != null) {
Log.d("FCM", "Notification Message Body: " + remoteMessage.getNotification().getBody());
sendNotification(remoteMessage.getNotification().getBody());
}
}
Run Code Online (Sandbox Code Playgroud)
更新2:尝试使用相同的服务器密钥和令牌命中FCM的HTTP api并获得以下响应:
{
"multicast_id": 6286279702096230688,
"success": 0,
"failure": 1,
"canonical_ids": 0,
"results": [
{
"error": "NotRegistered"
}
]
}
Run Code Online (Sandbox Code Playgroud)
为了避免交叉问题,这里有更多细节:
notifications android firebase google-cloud-messaging firebase-cloud-messaging
似乎filter: none;在Safari(速度)上的位置/顺序有很大的不同.有人可以对所发生的事情提供一个可靠的解释吗?
仅在Safari中检查以下两个示例
示例1 :( filter: none;在CSS规则结束时,它在Safari上非常慢)
section#pitches>div>div:hover {
opacity: 0.6;
filter: grayscale(0%);
-webkit-filter: grayscale(0%);
filter: none; /* IE 6-9 */
}
Run Code Online (Sandbox Code Playgroud)
示例2 :( filter: none;在其他浏览器特定的过滤器上方移动使其快得多)
section#pitches>div>div:hover {
opacity: 0.6;
filter: grayscale(0%);
filter: none; /* IE 6-9 */
-webkit-filter: grayscale(0%);
}
Run Code Online (Sandbox Code Playgroud)
我在网上搜索试图找到解释,但没有运气?
我有我的猜测,但据我所知CSS不会停止检查其他规则如果看到filter: none;?
我试图通过指定该数组的路径来弄清楚如何更改JSON数组中的现有对象.
问题是我不知道如何指定数组的路径,以便可以更改它.我在那里尝试的每个方法都没有关于如何更改ObjectNode中的数组的示例.
这是我现在的代码,在其中我尝试通过指针表示法指定数组的路径来获取和更改数组,但是,这总是不返回数组:
构建POJO类不是一种选择.
我的json结构中的数组如下:
{
RESULTS: {
ATTACHMENTS: {
ATTACHMENT: [{object}]
}
}
}
Run Code Online (Sandbox Code Playgroud)
码:
private JsonNode attachmentConversion(JsonNode object){
final String ATTACHMENT_POINTER = "/RESULTS/ATTACHMENTS/ATTACHMENT"; //Path to the array
ObjectNode OUTPUT = object.deepCopy();
OUTPUT.remove("DETAILS");
//Validate is an array - It properly fetches the array
if(object.at(ATTACHMENT_POINTER).isArray()){
int counter=0;
//Loop through attachment array - It properly fethes each object in the array
for(final JsonNode objNode : object.at(ATTACHMENT_POINTER)){
ObjectNode objectNode = objNode.deepCopy();
OUTPUT.withArray(ATTACHMENT_POINTER) //HERE IS THE PROBLEM - How do I specify the …Run Code Online (Sandbox Code Playgroud) 我知道不可动画的属性不会在动画中插入,但是,我的理解是这些值至少是(突然)计算的。
因此,例如,假设我想将溢出属性(不可设置动画,即不在此列表中)从hiddento设置为“动画” visible- 我希望计算出的值会适当更改。
(我尝试在规范中查找此内容,但找不到明确提及的内容)
这实际上发生在 Chrome 和 Firefox 中,但不是在 iOS 上。(Safari、iPhone)
.animate {
border: 5px solid green;
width: 200px;
height: 100px;
animation: 3s resetOverflow;
}
@keyframes resetOverflow {
from {
overflow: hidden;
color: red;
}
to {
overflow: visible;
color: green;
}
}Run Code Online (Sandbox Code Playgroud)
<div class="animate">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s when an unknown …Run Code Online (Sandbox Code Playgroud)我有一个关于全局脚本的问题,我现在正在使用以下脚本,因为这些函数在每个页面上全局使用.(在我拥有与unit converter8个地方定义的函数相同的函数之前,现在我将它移动到全局脚本,所以我只定义一次.)
我的问题是,这是一种有效的方法还是最佳做法?我真的需要它们全局定义并在其他脚本调用这些方法之前加载.
我搜索过这样的文章建议不要使用全局函数.https://www.w3schools.com/js/js_best_practices.asp
避免使用全局变量
最大限度地减少全局变量的使用.
这包括所有数据类型,对象和函数.
全局变量和函数可以被其他脚本覆盖.
改为使用局部变量,并学习如何使用闭包.
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
/*-----------------------------------------------------
global function for Set/Get Cookie
------------------------------------------------------*/
function setCookie(cname,cvalue,exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(name) {
var value = "; " + document.cookie;
var parts = value.split("; " + name + "=");
if (parts.length == 2) return …Run Code Online (Sandbox Code Playgroud) 我已经能够更改select2框的高度并应用一些更改,但我现在的问题是select2框中的文本出现在选择框的中心,也出现在箭头的顶部.我只是不知道为什么?在此处查看图像https://i.stack.imgur.com/mckMI.jpg
.select2-container--bootstrap .select2-selection {
-webkit-box-shadow: 0;
box-shadow: 0;
background-color: #fff;
border: 0;
border-radius: 0;
color: #555555;
font-size: 14px;
outline: 0;
min-height: 48px;
}Run Code Online (Sandbox Code Playgroud)
我有一个应该大于 0的输入字段,我min="0.00000001"用来验证输入数字是否大于 0。
<input type="number" step="0.00000001" min="0.00000001" name="price" value="[%price%]" />
Run Code Online (Sandbox Code Playgroud)
由于我不想指定stepand min,我只想验证输入数字是否大于 0。
有没有更好的方法来比较输入?例如像input > 0或min > 0
我正在寻找一种解决方案,但如果不使用step+就找不到解决方案min。
只使用 html5,我们可以这样做吗?谢谢你的帮助
<input type="number" step="0.00000001" min="0.00000001" name="price" value="[%price%]" />
Run Code Online (Sandbox Code Playgroud)
css ×3
firebase ×2
html ×2
javascript ×2
android ×1
css-filters ×1
css3 ×1
events ×1
html5 ×1
ios ×1
jackson ×1
java ×1
redux ×1
safari ×1
validation ×1