有没有人知道如何在Google中使用Firebase简单登录?我试图找出在调用FirebaseSimpleLogin时如何定义函数(error,user){}。error和user()都是对象。
这是Firebase的javascript代码示例
var myDataRef = new js.Proxy(js.context.Firebase, 'https://johnstest1.firebaseIO.com/');
var myDataRef = new Firebase('https://johnstest1.firebaseIO.com/');
var auth = new FirebaseSimpleLogin(myDataRef, function(error, user) {
if (error) {
// an error occurred while attempting login
console.log(error);
} else if (user) {
// user authenticated with Firebase
console.log('User ID: ' + user.id + ', Provider: ' + user.provider);
} else {
// user is logged out
}
});这是添加到html文件中供Dart和Firebase使用的代码。
<script type='text/javascript' src='https://cdn.firebase.com/v0/firebase.js'></script>
<script type='text/javascript' src='https://cdn.firebase.com/v0/firebase-simple-login.js'></script>
<script type="application/dart" src="firebasetestlogin.dart"></script>
<script src="packages/browser/dart.js"></script>
<script src="packages/browser/interop.js"></script> 在.dart文件中,javascript库已经使用pubspec.yaml导入
import 'package:js/js.dart' as js;在main()中,这一行代码工作得很好,我可以将数据写入数据库。注释掉的行是原始的javascript行,下一行是Dart版本,它可以工作。
js.scoped((){
// var myDataRef = new Firebase('https://johnstest1.firebaseio.com');
var myDataRef = new js.Proxy(js.context.Firebase, 'https://johnstest1.firebaseIO.com/');
});这是来自main的相同代码,并添加了Firebase简单登录行。我一直在试图找出如何为函数(错误、用户)编写代码。
js.scoped((){
// var myDataRef = new Firebase('https://johnstest1.firebaseio.com');
var myDataRef = new js.Proxy(js.context.Firebase, 'https://johnstest1.firebaseIO.com/');
//var auth = new FirebaseSimpleLogin(js.context.Firebase(myDataRef, function(error, user){}{}));
var auth = new js.Proxy(js.context.FirebaseSimpleLogin(myDataRef, js.context.function(error, user)));
});发布于 2013-08-08 07:07:39
当您想在Js中使用Dart回调函数时,您必须创建一个回调并将其用作参数。
与第一个粘贴的js代码对应的省道代码是:
var myDataRef = new js.Proxy(js.context.Firebase,
'https://johnstest1.firebaseIO.com/');
var auth = new js.Proxy(js.context.FirebaseSimpleLogin, myDataRef,
new js.Callback.many((error, user) {
if (error != null) {
// an error occurred while attempting login
window.console.log(error);
} else if (user != null) {
// user authenticated with Firebase
window.console.log('User ID: ${user.id}, Provider: ${user.provider}');
} else {
// user is logged out
}
}));注意:您可以避免不需要的js.scoped,因为很少版本的js软件包。
发布于 2013-08-20 00:30:25
这是一些使用Dart登录Firebase的示例代码。这将Alexandre的答案合并到一个帖子中,并添加了一些代码。
这个例子将:
将js包http://pub.dartlang.org/packages/js添加到程序中
将这三行添加到HTML文件中。
<script src="packages/browser/interop.js"></script>
<script type='text/javascript' src='https://cdn.firebase.com/v0/firebase.js'></script>
<script type='text/javascript' src='https://cdn.firebase.com/v0/firebase-simple-login.js'></script> 添加一个child_added回调,如果一个新的子节点被添加到数据库中,它将被调用
// Add a listener for for child_added and gets all the data
myDataRef.on('child_added',
new js.Callback.many((snapshot, String previousChildName) {
try {
final message = snapshot.val();
print("${message.name} : ${message.text}");
}
catch (e) {}
}));发布于 2015-09-16 07:38:24
现在有一个用于Firebase的由dart团队发起的dart包装器:https://pub.dartlang.org/packages/firebase。
随着未来的使用,飞镖版本远比js版本更令人惊叹。
https://stackoverflow.com/questions/18114110
复制相似问题