首页 > 解决方案 > 实例成员不能用于类型 - Firebase

问题描述

我是 Swift 新手,我正在学习如何使用 Xcode 和 Firebase 创建社交媒体应用程序的教程。但是,我收到了这个错误:

实例成员 'database' 不能用于类型 'DatabaseReference'

这是我的代码:

import Foundation
import Firebase

class Post {

private var _username: String!
private var _userImg: String!
private var _postImg: String!
private var _likes: Int!
private var _postKey: String!
private var _postRef: DatabaseReference

var username: String {

    return _userImg
}

var postImg: String {
    get {
        return _postImg
    }set {
        _postImg = newValue
    }
}

var likes: Int {
    return _likes
}

var postKey: String {
    return _postKey
}


init(imgUrl: String, likes: Int, username: String, userImg: String) {
    _likes = likes
    _postImg = postImg
    _username = username
    _userImg = userImg
}

init(postKey: String, postData: Dictionary<String, AnyObject>) {
    _postKey = postKey

    if let username = postData["username"] as? String {
        _username = username
    }

    if let userImg = postData["userImg"] as? String{
        _userImg = userImg
    }

    if let postImage = postData["imageUrl"] as? String {
        _postImg = postImage
    }

    if let likes = postData["likes"] as? Int {
        _likes = likes
    }

_postRef = DatabaseReference.database().reference().child("posts")
}
}

我在倒数第三行收到错误消息:

_postRef = DatabaseReference.database().reference().child("posts")

标签: swiftfirebase

解决方案


database属性是一个实例类型,这意味着它必须由 的实例引用DatabaseReference。您的调用DatabaseReference.database是访问一个类或静态类型。您需要将调用更改为DatabaseReference.

据推测,您需要初始化DatabaseReference. 我不知道 Firebase 知道这需要什么,但这会解决您的问题。

本质上:

let databaseReference = DatabaseReference() // Likely won't work, but some init method here will
_postRef = databaseReference.database()... // Whatever you need here

推荐阅读