Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 如何避免在数据库中存储相同的值_Firebase_Firebase Realtime Database - Fatal编程技术网

Firebase 如何避免在数据库中存储相同的值

Firebase 如何避免在数据库中存储相同的值,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,考虑到我的firebase DB: 我如何确保firebase端电子邮件(或其他字段)的唯一性(使用规则) 谢谢我建议您使用电子邮件地址,而不是使用由push()方法生成的唯一id。由于Firebase不接受密钥中的符号为,因此您需要对电子邮件地址进行如下编码: name@email.com -> name@email,com 正如您可能看到的,符号随,而更改。要编码和解码电子邮件地址,我建议您使用以下方法: static String encodeUserEmail(String userEm

考虑到我的firebase DB:

我如何确保firebase端电子邮件(或其他字段)的唯一性(使用规则)


谢谢

我建议您使用电子邮件地址,而不是使用由
push()
方法生成的唯一id。由于Firebase不接受密钥中的符号为
,因此您需要对电子邮件地址进行如下编码:

name@email.com -> name@email,com

正如您可能看到的,
符号随
而更改。要
编码
解码
电子邮件地址,我建议您使用以下方法:

static String encodeUserEmail(String userEmail) {
    return userEmail.replace(".", ",");
}

static String decodeUserEmail(String userEmail) {
    return userEmail.replace(",", ".");
}
要验证用户的
唯一性
,只需在
users
节点上放置一个
侦听器
,并使用
dataSnapshot
上的
exists()
方法


希望有帮助。

谢谢Alex。我想我还有其他选择。。。用逗号等替换点有点奇怪。。。否?这是一个有效的解决方案,也是在Firebase中构建用户部分时的一个良好实践。你可以等待别人的回答,但是如果你认为我的答案帮助了你,考虑接受它,给予+1。谢谢