我正在使用Firebase和Swift 3,我想知道如何将这个从我的Android应用程序转换为Swift 3:
decimal?
我尝试了这个,但它没有用:
DatabaseReference signalReceivedReference = mFirebaseDatabase.getReference("users/" + mAuth.getCurrentUser().getUid() + "/signal_received");
signalReceivedReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(String.valueOf(dataSnapshot.getValue()).equals("true")){
showToast(getString(R.string.signalReceived));
dataSnapshot.getRef().setValue("false");
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
答案 0 :(得分:0)
您正在使用addValueEventListener
来监听更改,而在Swift中您使用了observeSingleEvent(of: .value, with: ...)
,这只会观察一次值。您可以使用observe(.value, with: ...)
收听更改。
ref.child("users/\(userID!)/signal_received").observe(.value, with: { (snapshot) in
if(snapshot.value as! String == "true"){
self.view.makeToast("Signal received")
snapshot.ref.setValue("true")
}
}) { print($0) }