私が作成したアプリケーションはfirebaseからデータを読み込むことができます。しかし、私はそれにデータを書き込もうとすると、動作していないようです。私は ".write"が本当に設定されていることを確認するために私のルールをチェックしましたが、何もポップアップしていません。 ref?.child(email).child("events").setValue("Test")
Firebaseは読むことができますが、私は投稿することができません
メールの変数が値を持っている、それは私も「テスト」のための電子メールを代入しようとしたことで奇妙なものではありませんでした二重チェックするのに、次のようにfirebaseするイベントを記述しようとすると
。他にどこが間違っているのか分かりません。どんな助けも神様です!参照用
全コード:
//
// NewEventToCreateVC.swift
// WSUStudentEvents
//
// Created by Colin Warn on 7/31/17.
// Copyright © 2017 Colin Warn. All rights reserved.
//
import UIKit
import FirebaseDatabase
import Firebase
class NewEventToCreateVC: UIViewController {
var eventToCreate: UserEvent?
@IBOutlet weak var titleOutlet: UILabel!
@IBOutlet weak var startTimeOutlet: UILabel!
@IBOutlet weak var endTimeOutlet: UILabel!
@IBOutlet weak var eventTypeOutlet: UILabel!
@IBOutlet weak var locationOutlet: UILabel!
@IBOutlet weak var descriptionOutlet: UITextView!
@IBOutlet weak var passwordOutlet: UILabel!
let defaults = UserDefaults.standard
var ref: DatabaseReference?
override func viewDidLoad() {
super.viewDidLoad()
ref = DatabaseReference().database.reference()
let formatter = DateFormatter()
formatter.dateStyle = .short
formatter.timeStyle = .short
var startDateString = ""
var endDateString = ""
if let startTime = eventToCreate?.startTime, let endTime = eventToCreate?.endTime {
startDateString = formatter.string(from: startTime)
endDateString = formatter.string(from: endTime)
}
titleOutlet.text = eventToCreate?.eventName
startTimeOutlet.text = startDateString
endTimeOutlet.text = endDateString
eventTypeOutlet.text = eventToCreate?.eventType
locationOutlet.text = eventToCreate?.eventLocation
descriptionOutlet.text = eventToCreate?.description
if let password = eventToCreate?.password {
if password == "" {
passwordOutlet.text = "(no password)"
} else {
passwordOutlet.text = "Password: \(password)"
}
}
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewDidAppear(_ animated: Bool) {
print("EVENT TO CREATE, new VC data transfer check")
print(eventToCreate)
print(eventToCreate?.eventName)
}
@IBAction func addEventPressed(_ sender: Any) {
uploadDataToFirebase()
}
@IBAction func backBtnPressed(_ sender: Any) {
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewController(withIdentifier: "AddEventViewModelVC") as! AddEventViewModelVC
if let eventName = eventToCreate?.eventName {
nextViewController.eventName = eventName
}
if let eventLocation = eventToCreate?.eventLocation {
nextViewController.eventLocation = eventLocation
}
nextViewController.startTime = eventToCreate?.startTime
nextViewController.endTime = eventToCreate?.endTime
if let description = eventToCreate?.description {
nextViewController.eventDescription = description
}
if let password = eventToCreate?.password {
nextViewController.password = password
}
if let eventType = eventToCreate?.eventType
{
nextViewController.eventType = eventType
}
nextViewController.eventEnum = .password
self.present(nextViewController, animated:true, completion: {
nextViewController.titleLabel.text = nextViewController.eventEnum.rawValue
nextViewController.textField.text = self.eventToCreate?.password
})
}
func uploadDataToFirebase(){
let email = defaults.object(forKey: "email") as! String
print(email)
//Email->Events->Data
//Set Email
//Set events
ref?.child(email).child("events").setValue("Test")
}
}
は、事前にどうもありがとうございます:
だとのsetValueの、あなたはのsetValueを使用することができます!文字列 'は電子メールですか? Firebaseデータベース内のキーにピリオドを付けることはできないため、問題を説明する可能性があります。 –
多くのコードとエラーの機会 - 電子メールを無期限にしたり、期間内のような無効な文字を使用するとどうなりますか?問題を再現するために必要な[最小限の例](https://stackoverflow.com/help/mcve)を作成してください。 – Jay
@IT:最小限の例を作る:ref?.child( "Lincolnasasa")。setValue( "Bill") まだリフレッシュしてもFirebaseには何も表示されません。 –