如何根据FireBase数据快照检查亵渎的用户名

时间:2016-07-29 06:02:34

标签: swift firebase firebase-realtime-database

请勿将其标记为重复,此帖子的编辑已将其与其他可能重复的帖子区分开来。 我正在将用户注册到我的应用程序中。至关重要的是,我不允许尽可能多的粗俗用户名,因为每个人都可以看到它们。到目前为止我所做的是:

  1. UITextView
  2. 收集建议的用户名
  3. 从我的Firebase数据库
  4. 中提取不允许的字词列表

    我将snapshot作为其默认返回类型返回,因此,从这里开始,我需要搜索所述快照以查找所提议用户名的任何相似之处。我怎么能做到这一点?以下是我在下面使用的一些代码:

     func nameFilter(input : String)-> Bool{
        var profanity : Bool  = false
        let dataRef = FIRDatabase.database().reference()
        dataRef.child("Profanity").observeSingleEventOfType(.Value) { (snap: FIRDataSnapshot) in
            if(snap.exists()){
                if(snap.hasChild(input)){
                    print("profanity")
                    profanity = true
                }else{
             profanity = false
            }
            }else{
                print("null")
            }
        }
        return profanity
    }
    

    这似乎根本不起作用,所以这里有人对我能尝试什么有任何想法吗?无论我通过它,这个函数似乎总是返回false。

1 个答案:

答案 0 :(得分:2)

我自己照顾这个,我用来完成这个的代码是:

func nameFilter(input : String)-> Bool{
    var profanity : Bool = true
    let dataRef = FIRDatabase.database().reference()
    dataRef.child("Profanity").observeSingleEventOfType(.Value) { (snap: FIRDataSnapshot) in
        if(snap.exists()){
            if(snap.value! as! NSArray).containsObject(input){
                print("our ears!")
                profanity = true
            }else{
            profanity = false
        }


    }


}
    return profanity
}

希望它对其他人有用。