小编Ich*_*sos的帖子

Firestore安全规则检查引用是否存在

我想知道如何检查文档值是否是对另一个文档的引用,并且该文档是否存在使用firebase安全规则.

我尝试了什么:

function validate(document) {
    return exists(document.reference)
}

match /collection/{document} {
    allow read: if request.auth != null;
    allow create, update: if isAdmin(request.auth.uid) && validate(request.resource.data);
}
Run Code Online (Sandbox Code Playgroud)

由于这不起作用,我试图弄清楚是什么类型document.ref.不幸的是,它似乎没有列出的任何类型:https: //firebase.google.com/docs/firestore/reference/security/?autuser = 0#data_types

我试过,path因为这是最明显的工作存在.我没想到它会起作用.另一个猜测可能是mapstring.两者都不正确.

因为我不知道这可能是什么,并且没有任何记录如何将引用转换为路径,我现在必须在这里问.

有没有人找到解决方案?

TL; DR:

我需要检查使用Firestore安全规则是否存在文档中保存的引用并且它是否存在于数据库中.

谢谢,丹尼斯

firebase firebase-security google-cloud-firestore

14
推荐指数
2
解决办法
3823
查看次数

Firebase Cloud Function 身份验证触发时机

有谁知道 Firebase 云功能 onCreate 身份验证触发器的时间是什么?

是这样的吗:
- 用户使用 SDK 注册
- Firebase 在 Firebase 身份验证中创建用户并进行 Firebase 身份验证
- Firebase SDK 发送登录成功事件
-调用 函数onCreate

或类似:
- 用户使用 SDK 注册
- Firebase 在 Firebase 身份验证中创建用户并进行用户身份验证-调用
Firebase onCreate
- Firebase SDK 发送登录成功事件

或者换句话说:
我能否确定在成功用户注册后,Firestore 用户文档已由简短的 Firebase Cloud Function 脚本创建?

那么我可以确定当SDK发送身份验证成功回调时Firestore用户文档已创建吗?

authentication firebase firebase-authentication google-cloud-functions google-cloud-firestore

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

在Java中意味着什么?

我在Java项目中找到了一个新符号,想知道它是什么意思?

systemUiVisibility & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
Run Code Online (Sandbox Code Playgroud)

~在这种情况下意味着什么?

java android bitwise-operators ones-complement

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

"和"有什么区别?

为什么我的代码工作,当我在以下代码中使用"时:

for(int i=0;i<7;i++){
        if(grid[row][i]!=0){
            if(player == "yellow"){
                grid[row][i-1] = 'y';
            }
            else if(player == "red"){
                grid[row][i-1] = 'r';
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是当我在以下代码中使用'时,请不要工作:

for(int i=0;i<7;i++){
        if(grid[row][i]!=0){
            if(player == 'yellow'){
                grid[row][i-1] = 'y';
            }
            else if(player == 'red'){
                grid[row][i-1] = 'r';
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

它总是说,"无效的字符常量".
- grid是一个二维char变量
- row是一个interger
-player是超类(window)受保护的,并且在超类的构造函数中占用了黄色值:

protected String player;

public window() {
    player = "yellow";
}
Run Code Online (Sandbox Code Playgroud)

java string if-statement equality

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