小编Jan*_*ler的帖子

使用auth.uid的基于查询的规则不起作用

我有以下结构:

events
-LEe7X118dkcH2JhJRe
    description: "Testdescr"
    eventTasks
    participants
        0zlwpSlCazNGjOyMi95h8awshrG2
            lastLogin: 1528641494535
            userKey: "0zlwpSlCazNGjOyMi95h8awshrG2"
            username: "User1"
        6LnYKxRu2SWUrxwIzId8dDpOrl02
            lastLogin: 152856590172
            userKey: "6LnYKxRu2SWUrxwIzId8dDpOrl02"
            username: "User2"
Run Code Online (Sandbox Code Playgroud)

我想查询用户参与者(如过滤器)的所有事件.我的Java代码是:

mDatabaseReference = FirebaseDatabase.getInstance().getReference("event");
mDatabaseReference.orderByChild("participants/"+userId+"/userKey").equalTo(userId).addChildEventListener [...]
Run Code Online (Sandbox Code Playgroud)

这就像一个魅力 - 我只收到正确的事件.

现在,我想在服务器端创建基于查询的规则(https://firebase.google.com/docs/database/security/securing-data).所以我创建了一个读取规则,如:

".read": "query.orderByChild == 'participants/'+auth.uid+'/userKey' && query.equalTo == auth.uid"
Run Code Online (Sandbox Code Playgroud)

问题:我无法保存该规则.Firebase给出了错误:"无效==表达式:与排序进行比较时,右操作数必须是排序或字符串文字." 为什么不能将"query.orderByChild"与auth.uid结合使用?

我究竟做错了什么?

编辑:这是我的完整规则:

{
  "rules": {         
    ".write": true,
     "event":{
       ".read": "query.orderByChild == 'participants/'+auth.uid+'/userKey' && query.equalTo == auth.uid"      
     }
  }
}
Run Code Online (Sandbox Code Playgroud)

database-design firebase firebase-realtime-database firebase-security-rules

6
推荐指数
0
解决办法
203
查看次数

jqplot与IE8无法正常工作

当我尝试使用IE8下的jqplot初始化图形时,我收到了js错误.

错误发生在:

return window.G_vmlCanvasManager.initElement(P)
Run Code Online (Sandbox Code Playgroud)

在jquery.jqplot.min.js文件中.

错误是关于:"属性initElement未定义或null"

我该如何解决这个问题?

此外,同样的错误出现在jqplot 的官方网站上.

我正在使用IE11与IE8仿真器模式.IE> 8 =>没问题.

javascript jquery internet-explorer-8 jqplot

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

PreferenceFragmentCompat 影响其他片段的性能

我按照谷歌指南(https://developer.android.com/guide/topics/ui/settings)将 PreferenceFragmentCompat 添加到我的应用程序中。

此外,我还有另一个片段(Fragment A),其中包含 MotionLayout 中的 RecyclerView 。MotionLayout用于一个小动画,它通过onSwipe将RecyclerView扩展到垂直全屏。

现在我遇到以下问题:在调用 PreferenceFragment 然后返回到 Fragment A 后,MotionLayout onSwipe 动画的性能确实很差/滞后。根据日志,滑动时会多次调用 onDraw 方法。

有趣的事实是,当我还没有启动 PreferenceFragment 时,onDraw 方法只被调用一次(@onCreate)?!

此外,调用我的其他片段的任意片段 X 不会影响我的片段 A的性能?!

这可能是什么原因?我该如何继续我的调查?

android android-preferences android-fragments preferencefragment android-motionlayout

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