我正在开发一个需要用户电子邮件和密码认证的android项目.详细信息存储在firebase数据库中.每当我尝试使用电子邮件和密码再次登录时,就会出现问题.在我的logcat中,错误消息是:
W/SyncTree: Listen at / failed: DatabaseError: Permission denied
Run Code Online (Sandbox Code Playgroud)
看看下面的代码:
public class LoginUser extends AppCompatActivity {
private RelativeLayout relativeLayout;
private EditText et_email, et_password;
private Button loginBtn;
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener authStateListener;
private DatabaseReference databaseReference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_user);
mAuth = FirebaseAuth.getInstance();
databaseReference = FirebaseDatabase.getInstance().getReference();
databaseReference.keepSynced(true);
relativeLayout = (RelativeLayout) findViewById(R.id.activity_login_user);
et_email = (EditText) findViewById(R.id.emailField);
et_password = (EditText) findViewById(R.id.pwdField);
loginBtn = (Button) findViewById(R.id.loginBtn);
loginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
initLogin();
}
});
authStateListener = …Run Code Online (Sandbox Code Playgroud) android firebase firebase-authentication firebase-realtime-database
我正在尝试通过请求许可(正确显示对话框)并仅在授予时导航来从我的应用程序中获取用户的位置。正在permission_handler颤振中使用的库。我无法从设置磁贴菜单中获取位置小部件以打开,并且正在显示库中的权限状态permission.disabled。
我已经为我的应用程序以编程方式打开了设置磁贴,它在下面的块中列出并处于活动状态:
void _requestPerms () async{
Map<PermissionGroup, PermissionStatus> statuses = await PermissionHandler().requestPermissions([
PermissionGroup.locationWhenInUse, PermissionGroup.locationAlways
]);
final status = statuses[PermissionGroup.locationWhenInUse];
switch(status){
case PermissionStatus.disabled:
await PermissionHandler().openAppSettings();
break;
}
_updateStatus(status);
Run Code Online (Sandbox Code Playgroud)
}
有人可以帮助我理解为什么尽管收到一次对话提示,但电话位置小部件没有打开以及如何导航到下一条路线,permission granted或者如果没有,则优雅地退出应用程序。谢谢。
完整代码:
import 'package:flutter/material.dart';
import 'package:eme_clone/utils/styles.dart';
import 'package:eme_clone/utils/constants.dart';
import 'package:permission_handler/permission_handler.dart';
class LocationDialog extends StatefulWidget {
@override
_LocationDialogState createState() => _LocationDialogState();
}
class _LocationDialogState extends State<LocationDialog> {
PermissionStatus _status;
@override
void initState() {
super.initState();
PermissionHandler().checkPermissionStatus(PermissionGroup.locationWhenInUse)
.then(_updateStatus);
}
@override
Widget build(BuildContext context) {
debugPrint('Location Status $_status');
return …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建自己的下拉按钮,其中包含分离和压缩的菜单项,如下图所示:
这是我到目前为止尝试过的代码,我得到了与容器相匹配的下拉宽度,但到目前为止无法自定义项目,并且高度始终从按钮上方开始,并且不占用容器的宽度:
body: Container(
margin: EdgeInsets.symmetric(horizontal: 10.0, vertical: 5.0),
child: Container(
width: double.infinity,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(10.0)),
border: Border.all(color: Colors.brown, width: 1.0)),
padding: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0),
child: DropdownButtonHideUnderline(
child: ButtonTheme(
alignedDropdown: true,
child: DropdownButton(
isExpanded: true,
isDense: true,
value: selection,
icon: Icon(
Icons.arrow_drop_down,
color: Colors.brown,
),
iconSize: 40,
underline: Container(
height: 1,
color: Colors.transparent,
),
onChanged: (String val) => setState(() => selection = val),
items: settingsOptions.map((option) {
return DropdownMenuItem(
value: option,
child: Text(option),
);
}).toList(),
),
),
)
), …Run Code Online (Sandbox Code Playgroud)