Javascript 如何将Google Dart与Firebase简单登录一起使用(函数中的pass函数)
有人知道如何使用Firebase简单登录和Google Dart吗?我试图弄清楚调用FirebaseSimpleLogin时如何定义函数(错误,用户){}。error和user()都是对象 这是来自Firebase的示例javascript代码Javascript 如何将Google Dart与Firebase简单登录一起使用(函数中的pass函数),javascript,dart,firebase,Javascript,Dart,Firebase,有人知道如何使用Firebase简单登录和Google Dart吗?我试图弄清楚调用FirebaseSimpleLogin时如何定义函数(错误,用户){}。error和user()都是对象 这是来自Firebase的示例javascript代码 var myDataRef = new js.Proxy(js.context.Firebase, 'https://johnstest1.firebaseIO.com/'); var myDataRef = new Firebase('h
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>
在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 Simple Login行代码相同。我一直在试图找出如何为函数(错误,用户)编写代码
当您想在Js中使用Dart回调函数时,必须创建一个函数并将其用作参数 第一个粘贴的js代码的dart等价物是:
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((错误,用户){
if(错误!=null){
//尝试登录时出错
window.console.log(错误);
}else if(用户!=null){
//使用Firebase进行身份验证的用户
log('User ID:${User.ID},Provider:${User.Provider}');
}否则{
//用户已注销
}
}));
注意:您可以避免不需要的
js.scoped
,因为。的版本很少。当您想在js中使用Dart回调函数时,您必须创建一个并将其用作参数
第一个粘贴的js代码的dart等价物是:
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((错误,用户){
if(错误!=null){
//尝试登录时出错
window.console.log(错误);
}else if(用户!=null){
//使用Firebase进行身份验证的用户
log('User ID:${User.ID},Provider:${User.Provider}');
}否则{
//用户已注销
}
}));
注意:您可以避免不需要的
js.scoped
。这是一些使用Dart登录Firebase的示例代码。这篇文章将Alexandre Ardhuin的答案与一些附加代码结合在一起
例如:
- 获取firebase参考并检查用户是否在线
- 使用电子邮件和密码登录创建新的Firebase用户
- 登录Firebase
- 添加一个子侦听器,并将数据库中的任何数据打印到控制台
- 将一些数据推送到Firebase,并将添加到显示数据中的子对象推送到Firebase李>
- 注销Firebase
<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>
})
);
// Create a new user using email and password
auth.createUser(emailAddress, password,
new js.Callback.many((error, user) {
if (error != null && user != null)
{
if (!error) {
window.console.log('User Id: ' + user.id + ', Email: ' + user.email);
}
}
})
);
// Login to firebase
auth.login('password', js.map({'email': emailAddress, 'password': password}));
// 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) {}
}));
- 将一些数据推送到Firebase,添加的child_回调将把数据库中的任何内容打印到控制台
// Push some data to Firebase myDataRef.push(js.map({"name": 'Mark', "text": 'Works with Dart test 2'}));
- 将用户从Firebase注销
// Logout auth.logout();
- 获取firebase参考并检查用户是否在线
- 使用电子邮件和密码登录创建新的Firebase用户
- 登录Firebase
- 添加一个子侦听器,并将数据库中的任何数据打印到控制台
- 将一些数据推送到Firebase,并将添加到显示数据中的子对象推送到Firebase李>
- 注销Firebase
<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>
})
);
// Create a new user using email and password
auth.createUser(emailAddress, password,
new js.Callback.many((error, user) {
if (error != null && user != null)
{
if (!error) {
window.console.log('User Id: ' + user.id + ', Email: ' + user.email);
}
}
})
);
// Login to firebase
auth.login('password', js.map({'email': emailAddress, 'password': password}));
// 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) {}
}));
- 将一些数据推送到Firebase,添加的child_回调将把数据库中的任何内容打印到控制台
// Push some data to Firebase myDataRef.push(js.map({"name": 'Mark', "text": 'Works with Dart test 2'}));
- 将用户从Firebase注销
// Logout auth.logout();
随着Future的使用,dart版本比js版本更令人敬畏 现在有一个dart团队为Firebase启动的dart包装器:
随着Future的使用,dart版本比js版本更令人敬畏 之前有一个关于将Firebase与Dart结合使用的问题:-也许那里的答案会有所帮助?这比另一篇文章上的问题更复杂,我不确定是否应该在原始文章中添加第二个问题或创建一个新主题。我看到一个帖子,人们因为某人在同一个帖子上问了第二个问题而生气。关于在函数中传递函数的部分使它变得更加困难。之前有一个关于使用Firebase和Dart的问题:-也许那里的答案会有帮助?这比另一篇文章上的问题更复杂,我不确定是否应该在原始文章中添加第二个问题或创建新主题。我看到一个帖子,人们因为某人在同一个帖子上问了第二个问题而生气。关于在函数中传递函数的部分使它变得更加困难。当它到达if(error)语句时,我收到错误消息“Breaking on exception:null”。自从我当前安装了(浏览器、js和meta)之后,是否还有其他软件包需要安装?您之所以会出现此错误,是因为
error
是nu